在没有unistd.h的情况下获取当前进程的进程ID

我正在研究一个死锁检测algorithm,我只给了内核级库,即#include <linux/somelibrary> ,没有别的。 是否有内核级的设施,使我得到当前进程的PID类似于unistd.h getpid()

我做了一些快速的研究,我找到了答案。 非常感谢你的指导。 我使用的快速代码是:

 printf("My current process id/pid is %d\n", current->pid); 

再次感谢!

这个问题没有什么意义。

你在编写基于内核的代码吗? 在这种情况下,可以通过使用指向当前任务任务结构(包含具有pid的成员)的“当前”宏来获取当前任务的pid。 这只有在内核代码运行在“当前任务”有意义的上下文(即不是中断,tasklet等)的情况下才有效。

如果你正在编写用户空间代码,那么你不应该调用getpid,这是一个来自unistd.h中定义的C库(或者它包含的东西)的库调用,它会调用系统。 如果有这个原因,请解释一下。

在Linux中进行系统调用不是特别困难,但确实涉及不需要编写的特定于体系结构的代码。