如果一个程序向第二个程序发送信号,那么第二个程序能否仅通过它发送的信号找出第一个程序的pid是什么?
第一个程序:(代码不完整,信号是重点)
#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();
}
有办法吗?或者我应该以SIGUSR1
某种方式将第一个程序的 pid 放入第二个程序可以找出 pid?