3
我需要您的幫助來完成一個關於進程間信號處理的練習。我認爲這是一個微不足道的問題,但我無法在任何地方找到答案。我想從父文件打印文件,從父文件發送信號給孩子,孩子必須在文件中打印,然後從孩子向父母發送信號。c中的子進程信號處理
我使用的代碼是這樣的:
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <signal.h>
#include <unistd.h>
#define WRITEF 123451 //Random number
FILE *infile;
void writef() {
fprintf(infile, "Child Starting (%d)\n", getpid());
printf("Child Starting (%d)\n", getpid());
}
int main() {
pid_t pid;
infile = fopen("pid_log.txt","w");
pid = fork();
signal(WRITEF, writef);
if (pid == 0) {
pause();
printf("enter child\n");
}
else {
fprintf(infile, "Parent (%d)\n", getpid());
printf("Parent (%d)\n", getpid());
kill(pid, WRITEF);
pause();
wait((int*)1);
}
fclose(infile);
return 1;
}
歡迎堆棧溢出。你的代碼是否會產生任何錯誤?哪一個?結果是不正確的?爲什麼? – 2012-10-17 18:51:27