栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

2个或更多fork系统调用如何工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2个或更多fork系统调用如何工作?

您的程序完全错误。您 永远

fork
不应 忽略的结果

阅读Advanced
Linux编程
书和fork(2)手册页(请仔细阅读该页面几次)。

典型代码应为:

  pid_t pid1 = fork();  if (pid1<0) { perror("fork1 failed"); exit(EXIT_FAILURE); }  else if (pid1 == 0) {     // you are in the child process  }  else // pid1>0   {  // you are in the parent process  }

并且同样for

pid_t pid2=fork();
和then for
pid_tpid3=fork();
等等。因此,每个对的调用
fork
都应处理3种结果的情况
fork
(失败,即
<0
子进程
==0
,父进程
>0

原则上您有3 3即27种可能性。但是您可以尽早处理失败案例,剩下2 3即8。

不要忘记处理的失败

fork
。你可能会降低你的进程限制(使用了setrlimit(2)使用
RLIMIT_NPROC
或等值的ulimit
bash的内置),以缓解测试
fork
失败。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号