如何獲取linux核心執行緒的pid

2021-09-24 06:39:38 字數 696 閱讀 1577

如果是pthread,則使用,

#include

pthread_t pthread_self(void);

如果不是pthread,即是由核心建立的執行緒,則使用,

#include

pid_t gettid(void);

獲取執行緒所在的程序的id,方法如下:

#include

#include

pid_t getpid(void);

pid_t getppid(void);

所以,我們在**中使用如下的語句列印:

printf("\ntid=%lu, pid=%lu\n", gettid(), getpid());

這樣就能獲取當前**所在的執行緒和程序了。

根據列印出來的程序的pid,獲取程序名的方法是:

ls -lh /proc/pid/exe

lrwxrwxrwx 1 root root 0 jan 1 20:48 /proc/pid/exe -> …

sh-3.2#

檢視thread id的方法有:

sh-3.2# ps -efl | grep process,

ps命令指定-l命令選項可以用來檢視程序下所包含的所有執行緒。

sh-3.2# ls -l /proc/pid/task/

檢視程序下當前有哪些task,這些task指的就是執行緒。

Linux 如何獲取Linux發行版的核心標頭檔案

編譯核心模組時,需要核心標頭檔案,下面介紹幾個常用的發行版上如何獲得核心標頭檔案。說明 本文是自己的總結,還不完善,希望對您有幫助,敬請指導。核心標頭檔案在 usr src 例如 sudo apt get install linux headers 3.13.0 33 generic 使用64位ub...

Linux核心執行緒實時獲取排程狀態的方法

最近在做專案中,需要執行緒實時的知道自身被sched out 和sched in.檢視了schedule 函式實現,發現核心提供了對應的notifier機制.schedule schedule context switch prepare task switch fire sched out pre...

Linux核心執行緒

核心執行緒是直接由核心來啟動的程序,通常也稱為守護程序,用於執行下列任務 記憶體頁很少使用時,換出。管理延時的動作。實現檔案系統的事務日誌。週期性的將修改的記憶體頁與頁 塊裝置同步。其它。核心執行緒按照工作方式可以分為兩種型別 執行緒啟動後一直在等待,直到核心請求執行緒執行某一特定操作。執行緒啟動後...