Chinaunix首页 | 论坛 | 博客
  • 博客访问: 168607
  • 博文数量: 39
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 214
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-21 11:10
文章分类

全部博文(39)

文章存档

2017年(6)

2016年(1)

2015年(6)

2014年(26)

我的朋友

分类: C/C++

2014-05-16 16:29:41


问题原型,在一个进程中,用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);


}

阅读(5247) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~