Как проверить, является ли pid потоками или процессом - PullRequest
1 голос
/ 17 февраля 2020

Чтобы проверить, существует ли идентификатор процесса, я проверяю

if (0 != kill(pid, 0))
    printf(" not exist");

В /proc/pid/task Я вижу все идентификаторы потоков в идентификаторе процесса

Как определить, является ли pid процессом или потоками в Linux?

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Чтение /proc/$pid/stat или /proc/$pid/status. Если поле Tgid (идентификатор группы потоков) отличается от поля Pid, то $pid - это просто идентификатор потока, а не идентификатор процесса. В противном случае это и идентификатор процесса, и идентификатор потока первого потока в процессе.

1 голос
/ 17 февраля 2020

вы можете проверить функцию gettid.

PID должен быть одинаковым, но TID в вашем случае должен быть другим.

http://man7.org/linux/man-pages/man2/gettid.2.html

...