C\C++下獲取系統進程或線程ID(轉)


在程序開發時有時需要獲取線程和進程ID以分析程序運行
(1)windows下獲取進程或線程ID
通過調用系統提供的GetCurProcessId或GetNowThreadID來獲取當前程序代碼運行時的進程或線程ID
示例代碼:

#include "windows.h"
printf("now pid is %d", GetCurrentProcessId());
printf("now tid is %d", GetCurrentThreadId());

(2)linux下獲取進程或線程ID
通過getpid和gettid獲取進程或線程ID
示例代碼:

#include "unistd.h"
printf("now pid is %d \n", getpid());
printf("now tid is %d \n", gettid());

(3)跨平台設計
為了便於跨平台開發,可利用宏定義支持代碼跨平台
示例代碼

#ifndef __linux__
#include "windows.h"
#else
#include "unistd.h"
#endif

#ifndef __linux__
printf("now pid is %d \n", GetCurrentProcessId());
printf("now tid is %d \n", GetCurrentThreadId());

#else
printf("now pid is %d \n", getpid());
printf("now tid is %d \n", gettid());
#endif


————————————————
版權聲明:本文為CSDN博主「wily_1987」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hanxv_1987/article/details/79509739

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM