【发布时间】:2013-07-17 00:23:07
【问题描述】:
我有以下两个源文件
loop.c 的可执行文件名为loop
int main() {
while(true);
return 0;
}
run.c 的可执行文件名为run
int main() {
pid_t child_pid = fork();
int status;
struct rusage info;
if (child_pid == 0) {
ptrace(PTRACE_TRACEME, 0, NULL, NULL);
execl("loop", "loop", NULL);
exit(0);
}
wait4(child_pid, &status, 0, &info);
puts("Child exited");
printf("%ld\n", info.ru_utime.tv_usec);
return 0;
}
我已经编译了这两个程序并运行了run 程序。为什么终止了?我读过wait4 suspend,但实际上并没有。当我执行ps 时,程序loop 正在运行,而run 没有(它不在ps 中,终端似乎通过提供输出来完成它的工作)。
我错过了什么吗?
PS
如果重要的话,我会使用 gnu g++ 编译器。
【问题讨论】:
标签: c linux multithreading pthreads