关于Linux C函数Kill ?

关于Linux C函数kill,查看帮助文档,执行成功则返回0,如果有错误则返回-1。 
可是执行了Kill后返回值为0,为什么用PS命令查看该进程还存在啊。请问这是怎么回事?
该进程是通过在fork出的子进程中调用execvp生成的。用ps命令查看,该进程带中括号,即[test]

pid_t pid = fork()
if(pid == 0) //子进程
{
execvp("test",arglist,NULL)
}
else if(pid>0)
{
// 父进程
}
else
{
//error
}

梵蒂冈之花
浏览 1026回答 2
2回答

扬帆大鱼

kill 这个命令指示发送一个SIGNAL 给进程.发送成功就返回 0 .但是程序接收到信号后会怎么处理 kill 是不管的.就是说无论kill 是不是返回 0. 进程都有可能继续运行.

慕少森

你是程序中调用kill函数,还是在命令行调用kill命令?int kill(pid_t pid, int sig); 函数有两个参数,一个是进程号,一个是信号如果你输入的进程号是正确的,而进程还在,则信号有可能被该进程忽略了,不知道你发送的信号是几号? 只有SIGKILL SIGSTOP不能被忽略,其它都可以忽略或捕捉。
打开App,查看更多内容
随时随地看视频慕课网APP