我必须编写一个C程序来创建10个子进程,每个进程在创建时都会写入一条消息。当其中一个Childs终止时,Parent也应该打印一条消息。
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
void CHLDhandler(int);
int main(int argc, char const *argv[]){
pid_t p;
signal(SIGCHLD,&CHLDhandler);
for(int i=0; i < 10; i++){
p = fork();
if ( p == (pid_t) 0 ) {
/* child */
signal(SIGCHLD, SIG_IGN);
printf("Child number %d was born!\n",i);
return 0;
}
else if ( p > (pid_t) 0 ) {
/* parent */
}
}
}
void CHLDhandler(int sig){
printf("Child finished\n");
}
到目前为止,这是我的代码。在Linux上它运行正常但在MacOS上我收到了非法的硬件指令错误。Error Message