我怎样才能确定一个过程

时间:2013-11-18 03:29:52

标签: c process

“编写一个名为program.c的程序,它将创建总共9个进程,这些进程将自己标识为process0,process1,process2,process3,process4,process5,process6,process7和process8。原始进程应该是process0“。

如何在使用fork创建进程时将我的进程标识为“processX”,只返回给孩子的PID为0,给父进程返回一些数字?我认为PID是标识符。

3 个答案:

答案 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]添加新名称。 (跟踪哪个进程将哪个名称作为练习留给读者。)