
第一个程序:(代码不完整,信号是主要焦点)
#include<stdio.h>#include<stdlib.h>#include<signal.h>#include<unistd.h>#include<time.h>voID my_handler(int);int main(int argc,char *argv[]){ file *fp; fp=fopen(argv[1],"w"); kill(atol(argv[2]),SIGUSR1);} 第二个计划:
#include<stdio.h>#include<stdlib.h>#include<signal.h>#include<unistd.h>#include<time.h>voID my_handler(int signum){ if (signum == SIGUSR1) { printf("Received SIGUSR1!\n"); }}int main(int argc,char *argv[]){ int pID; pID=getpID(); printf("PID: %d\n",pID); signal(SIGUSR1,my_handler); pause();} 有办法吗?或者我应该以某种方式将第一个程序的pID放在SIGUSR1中,第二个程序可以找出pID?
解决方法 假设您的意思是POSIX信号,那么是的.您可以通过siginfo_t的si_pID成员访问发送方的PID,但您需要使用sigaction和SA_SIGINFO标志来定义处理程序. 非POSIX系统(例如windows)甚至可能不具有信号的概念(至少不具有POSIX意义),因此这些都不适用.
总结以上是内存溢出为你收集整理的c – 2个程序之间的信号全部内容,希望文章能够帮你解决c – 2个程序之间的信号所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)