终止系统调用后删除终端消息
Remove terminal mesage after kill system call
我正在使用 parent 从 parent 杀死一个 child:
kill(pid, SIGTERM);
它输出到终端
Terminated
终端怎么不显示"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] 不是合法的系统调用,我想退出所有程序 - parent 和 children,它们都是在那之后创建的。
你能试试这个而不是 kill 指令吗:
sprintf(str, "kill -SIGINT %d >> /dev/null 2>&1",pid);
system(str);
系统用于执行shell中的命令。
">> /dev/null 2>&1" 正在将打印重定向到 /dev/null,换句话说就是放弃打印答案 ("terminated")。
我正在使用 parent 从 parent 杀死一个 child:
kill(pid, SIGTERM);
它输出到终端
Terminated
终端怎么不显示"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] 不是合法的系统调用,我想退出所有程序 - parent 和 children,它们都是在那之后创建的。
你能试试这个而不是 kill 指令吗:
sprintf(str, "kill -SIGINT %d >> /dev/null 2>&1",pid);
system(str);
系统用于执行shell中的命令。 ">> /dev/null 2>&1" 正在将打印重定向到 /dev/null,换句话说就是放弃打印答案 ("terminated")。