1つのプログラムが2番目のプログラムに信号を送信した場合、2番目のプログラムは、送信された信号だけで最初のプログラムの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);
}
2番目のプログラム:
#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
何らかの方法で配置すると、2番目のプログラムがpidを把握できるようにする必要がありますか?