关于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}
2 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
kill 这个命令指示发送一个SIGNAL 给进程.
发送成功就返回 0 .但是程序接收到信号后会怎么处理 kill 是不管的.
就是说无论kill 是不是返回 0. 进程都有可能继续运行.
慕少森
TA贡献2019条经验 获得超9个赞
你是程序中调用kill函数,还是在命令行调用kill命令?
int kill(pid_t pid, int sig); 函数有两个参数,一个是进程号,一个是信号
如果你输入的进程号是正确的,而进程还在,则信号有可能被该进程忽略了,不知道你发送的信号是几号? 只有SIGKILL SIGSTOP不能被忽略,其它都可以忽略或捕捉。
- 2 回答
- 0 关注
- 955 浏览
添加回答
举报
0/150
提交
取消