我正在编写一些代码来创建一个被阻塞然后结束的进程,我必须能够用 ps 查看阻塞状态。
我试过这个,但我的 C 知识不好。该代码不打印任何内容。
这里是:
#include <stdio.h>
#include <stdlib.h> //exit();
#include <unistd.h> //sleep();
int main(int argc, char *argv[]) {
createblocked();
}
int pid;
int i;
int estado;
void createblocked() {
pid = fork();
switch( pid ) {
case -1: // pid -1 error ocurred
perror("error\n");
break;
case 0: // pid 0 means its the child process
sleep(); // we put the child to sleep so the parent will be blocked.
printf("child sleeping...");
break;
default: // !=0 parent process
// wait function puts parent to wait for the child
// the child is sleeping so the parent will be blocked
wait( estado );
printf("parent waiting...\n");
printf("Child terminated.\n");
break;
}
exit(0);
}
这应该很容易,因为它只是一个被阻止的小程序,但我认为我是在绕圈子走。有什么建议吗?