我想将当前进程 ID 保存在变量中。
所以,我这样做:
double id = 0; //Global variable
.....
id = getpid();
printf("%d %d", id, getpid()); // the result ins't the same...
嗯,我希望将当前进程 ID 保存在全局变量中。
编辑:
new_pid = fork();
//new_pid2 = fork();
switch(new_pid) {
case -1:
perror("fork failed");
exit(1);
case 0:
kill(getppid(), SIGUSR1);
signal(SIGUSR1, trata_SIGSEGV);
break;
default:
signal(SIGUSR1, trata_SIGSEGV);
kill(new_pid, SIGUSR1);
break;
}
break;
最佳答案
问题是您使用错误的格式打印id
。您应该使用 %f
:
printf("%f %d", id, getpid());
Correct format specifier for double in printf
或将其转换为int
:
printf("%d %d", (int)id, getpid());
更好的主意是在声明 id
时使用正确的类型:
pid_t id;
这是整数类型,而不是浮点类型。
关于c - 如何在全局变量中保存进程 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119886/