“编写一个名为program.c的程序,它将创建总共9个进程,这些进程将自己标识为process0,process1,process2,process3,process4,process5,process6,process7和process8。原始进程应该是process0“。
如何在使用fork创建进程时将我的进程标识为“processX”,只返回给孩子的PID为0,给父进程返回一些数字?我认为PID是标识符。
答案 0 :(得分:1)
for (int i = 1; i < 9; i++)
{
int pid = fork();
if (pid < 0)
exit(1);
else if (pid == 0)
{
printf("Process%d\n", i);
exit(0);
}
}
printf("Process%d\n", 0);
答案 1 :(得分:0)
如果使用Unix获取当前进程的PID,则可以使用 getpid():
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
答案 2 :(得分:0)
至少在Linux上,您可以通过更改argv[0]
来更改进程名称。编译program.c时,将可执行文件命名为process0
。只要新名称不超过原始名称的大小,分叉进程就可以strcpy()
为argv[0]
添加新名称。 (跟踪哪个进程将哪个名称作为练习留给读者。)