我正在使用以下方式从父母那里杀死一个孩子:
kill(pid, SIGTERM);
输出到终端
Terminated
如何在终端中显示“终止”?
pid_t pid ;
pid = fork();
if(pid == 0){ // pid is process index id in parent process
wait(NULL); // wait for state changes in child
if(execlp(argv[1],argv[1],NULL) == -1){ // argv1 can be either valid or invalid (for example ls or alsjdf)
char str[128];
sprintf(str, "./multifork: %s",argv[1]);
perror(str);
kill(pid, SIGINT);
}
}
如果argv [1]不是合法的系统调用,我想退出所有程序 - 包括父程序和子程序,之后创建的程序。
答案 0 :(得分:1)
你可以试试这个而不是杀戮指令:
sprintf(str, "kill -SIGINT %d >> /dev/null 2>&1",pid);
system(str);
system用于在shell中执行命令。 “>> / dev / null 2>& 1”将打印重定向到/ dev / null,换句话说,丢弃打印答案(“已终止”)。