答案 0 :(得分:7)
我做了一些快速的研究,我找到了答案。非常感谢你的指导。我使用的快速代码是:
printf("My current process id/pid is %d\n", current->pid);
再次感谢!
答案 1 :(得分:4)
这个问题没什么意义。
您在编写基于内核的代码吗?在这种情况下,您可以使用“当前”宏来获取当前任务的pid,该宏指向当前任务的任务结构(其中包含具有pid的成员)。只有当你的内核代码在“当前任务”有意义的上下文中运行时(即不是中断,tasklet等),这才有效。
如果您正在编写用户空间代码,则没有理由不能调用getpid,这是来自unistd.h(或其中包含的内容)中定义的C库的库调用,这会调用系统。如果有这样的原因,请解释一下。
在Linux中进行系统调用并不是特别困难,但确实涉及您不想编写的特定于体系结构的代码。