system 函数返回错误No child processes 的原因

5710阅读 0评论2014-05-16 wavespider
分类:C/C++


问题原型,在一个进程中,用system(命令)来执行一个命令,返回-1,并且errno是10,strerror(errno)是No child processes 。
也可以看帖子:
原来是调用system的进程事先忽略掉这个信号SIGCHLD。看测试程序,如下:
#include
#include
#include
#include
 #include


void main(void){


        int ret = 0;
        signal(SIGCHLD, SIG_IGN);    /*这句注释掉,就是正常返回0,如果不注释掉,就返回错误,但是命令能正常执行。*/


        ret = system("ls -l ");
        printf("ret = %d errno=%d \n",ret, errno);


}

上一篇:(一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
下一篇:哈希链表hlist解惑