【发布时间】:2018-07-31 10:26:00
【问题描述】:
“ulimit -c unlimited”已经完成。代码如下:
main()
{
do
{
pid_t pid = fork();
int stat_loc;
if(pid < 0)
exit(1);
else if(pid > 0)
{
waitpid(pid, &stat_loc, 0);
sleep(5);
}
else
break;
}
while(1);
assert(0);
}
如果我用 assert(0) 替换 sleep(5),父进程会转储核心。
【问题讨论】:
-
它适用于 Linux 内核 4.17、glibc 2.27、amd64。
-
发布的代码缺少所需头文件所需的
#include语句。所以它不编译!函数main()的返回类型始终为int,而不是空白 -
请发minimal reproducible example,以便我们为您提供帮助
-
建议将
if(pid < 0) exit(1);替换为if(pid < 0) { perror( "fork failed" ); exit(1); }这样用户/您就会知道为什么调用fork()失败 -
代码只是伪代码,给你一个想法。