跨境商旅客户ppt信息流优化师
跨境商旅客户ppt,信息流优化师,jarvis wordpress,个人网站建设费用#xff08;1#xff09;发送信号传参
前面已经知道从一个进程向另一个进程发送信号可以使用kill函数#xff0c;但是kill函数在向进程发送信号的时候不能携带除了信号以外的其他信息#xff0c;这时可以使用与kill相对应的sigqueue函数#xff0c;该函数也是向一个进程发…1发送信号传参
前面已经知道从一个进程向另一个进程发送信号可以使用kill函数但是kill函数在向进程发送信号的时候不能携带除了信号以外的其他信息这时可以使用与kill相对应的sigqueue函数该函数也是向一个进程发送信号但是可以携带其它参数信息
int sigqueue(pid_t pid, int sig, const union sigval value); 成功0失败-1设置errno
union sigval { //向进程发送一个联合体变量value
int sival_int; void *sival_ptr;
};
即sigqueue函数在向进程发送信号的同时还可向进程发送一个变量value包含两个成员一个是整型数据sival_int另一个是泛型指针sival_ptr通过该指针可以携带任何数据。但是要注意一点整型数据是按值传递因此没有问题而发送的指针是该进程自己进程空间的虚拟地址不同进程之间虚拟地址空间各自独立将当前进程地址传递给另一进程没有实际意义。即进程给自己发送信号传送指针才会有意义。
2捕捉函数传参
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); };
当注册信号捕捉函数希望获取更多信号相关信息不应使用sa_handler而应该使用sa_sigaction。但此时的sa_flags必须指定为SA_SIGINFO。siginfo_t是一个成员十分丰富的结构体类型可以携带各种与信号相关的数据。sa_flags为0则捕捉函数使用sa_handler且为默认属性在调用户处理函数期间屏蔽信号本身sa_flags为SA_SIGINFO则捕捉函数使用sa_sigaction该函数可以携带更多的参数第一个参数同sa_handler函数默认为信号编号但自己也可以赋值第二个参数为传出参数是一个结构体类型其中包含了信号相关的数据第三个参数为传入参数可以传入一个泛型指针。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87718.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!