UNIX环境高级编程Ubuntu下的一个小BUG
2014-04-12 16:35
288 查看
在这本书里面使用fork时的标准格式都是
pid_t pid;
if(pid = fork() < 0)//错误
{}
else if(pid == 0)//子进程
{}
else //父进程
{}
结果仿照上面格式写代码的时候一直执行子进程,而且子进程会执行两遍,但是父进程不执行,
自己分析下,每次if(pid = fork() < 0)的时候都会生成一个新的子进程,原因貌似在这里,但是不管
怎么样,父进程总不执行,这点没搞懂。
把上面的格式中换成
pid_t pid;
pid = fork();
if(pid < 0)
{}
else if(pid == 0)
{}
else
{}
后正常,我的环境是ubuntu,不知到是不是跟这个有关~~~
pid_t pid;
if(pid = fork() < 0)//错误
{}
else if(pid == 0)//子进程
{}
else //父进程
{}
结果仿照上面格式写代码的时候一直执行子进程,而且子进程会执行两遍,但是父进程不执行,
自己分析下,每次if(pid = fork() < 0)的时候都会生成一个新的子进程,原因貌似在这里,但是不管
怎么样,父进程总不执行,这点没搞懂。
把上面的格式中换成
pid_t pid;
pid = fork();
if(pid < 0)
{}
else if(pid == 0)
{}
else
{}
后正常,我的环境是ubuntu,不知到是不是跟这个有关~~~
相关文章推荐
- 无限级分类 for PHP+Mysql
- python实现的遗传算法实例(一)
- 编程之美 大神與三位小夥伴
- Java反射机制(只可以访问公有的方法或者变量)
- javase 复习汇总二:hashtable和hashmap 的区别
- (基于Spring3)Spring学习笔记(一):初识Spring
- Spring MVC Controller单例陷阱
- 学习:Python之Python安装(一)
- python发送中英文邮件
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- javase 复习汇总一:strignbuilder += +效率比较
- python 学习笔记- 变量赋值
- c语言可变参数va_list,va_start用法与分析
- PHP5安装GD库的具体操作步骤
- C++ 获得指定路径文件的“修改日期”
- C++ 获得指定路径文件的“修改日期”
- Eclipse批量改包名
- 20个非常有用的PHP类库
- CodingTrip - 携程编程大赛 (预赛第一场) :1002 括号匹配
- Java集合List模拟“洗牌”操作