线程和进程id的值范围是多少?

mis*_*yes 5 c linux multithreading multiprocessing

fork并且pthread_create将返回一个进程ID或线程ID.

但我不知道这些ID的价值范围.

现在我想创建一个查找表,在每个条目中都有一个项目/字段用于线程ID.每个条目的结构如下:

 typedef struct {
   int seq;
   pthread_t tid;
   ...
 } entry_t;
Run Code Online (Sandbox Code Playgroud)

tid当我没有得到一个线程的tid时,我想为一个条目赋予一个无效的值(很快这个字段将填充一个有效的,但在此之前该fill函数将检查pid是否有效) .那么,线程和进程id的值范围是多少?

R..*_*R.. 8

这种pthread_t类型是完全不透明的.您只能将它与pthread_equal函数进行相等性比较,并且没有与任何有效线程ID不同的保留值,尽管这样的值可能会添加到下一版本的POSIX标准中.因此,您需要在线程ID旁边存储第二个字段以跟踪它是否有效.