Как мне получить LWP, используя Linux glibc? - PullRequest
1 голос
/ 06 октября 2010

Я разработал процесс с некоторыми потоками на машине с Linux (Ubuntu).Я хотел бы знать, как я могу получить LWP из каждого потока (используя функцию glibc), когда PID и PPID всегда одинаковы для всех потоков процесса.

UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root      2588  2587  2588  0   11 00:05 ?        00:00:07 ./testsrv
root      2588  2587  2589  2   11 00:05 ?        00:23:17 ./testsrv
root      2588  2587  2590  0   11 00:05 ?        00:00:00 ./testsrv
root      2588  2587  2591  0   11 00:05 ?        00:00:03 ./testsrv
root      2588  2587  2592  0   11 00:05 ?        00:00:00 ./testsrv
root      2588  2587  2593  0   11 00:05 ?        00:00:00 ./testsrv
root      2588  2587  2594  0   11 00:05 ?        00:05:05 ./testsrv
root      2588  2587  2595  0   11 00:05 ?        00:00:00 ./testsrv
root      2588  2587  2596  0   11 00:05 ?        00:00:37 ./testsrv
root      2588  2587  2597  0   11 00:05 ?        00:00:00 ./testsrv
root      2588  2587  2601  0   11 00:05 ?        00:00:00 ./testsrv

1 Ответ

5 голосов
/ 06 октября 2010

Используйте gettid () со страницы руководства:

ОПИСАНИЕ
gettid () возвращает идентификатор потока вызывающей стороны (TID).В однопоточном процессе идентификатор потока равен идентификатору процесса (PID, возвращаемому getpid (2)).В многопоточном процессе все потоки имеют одинаковый PID, но каждый имеет уникальный TID.Подробнее см. Обсуждение CLONE_THREAD в clone (2).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха возвращает идентификатор потока вызывающего процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...