簡體   English   中英

在沒有unistd.h的情況下獲取當前進程的進程ID

[英]Getting the process id of a current process without unistd.h

我正在研究死鎖檢測算法,我只給了內核級庫,即#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中進行系統調用並不是特別困難,但確實涉及您不想編寫的特定於體系結構的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM