pid_t 的类型
机器环境:Lubuntu-16.04
首先查看 /usr/include 目录下的 unistd.h
其中有这样两行:
220 #include <bits/types.h> 263 typedef __pid_t pid_t;
即:pid_t 是 __pid_t 的别名。
由此,我们到 /usr/include/x86_64-linux-gnu 目录下的 bits/types.h 文件中查找 : __pid_t
我们找到如下几行:
117 # define __STD_TYPE typedef 121 #include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */ 133 __STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
于是可知 __pid_t 是 __PID_T_TYPE 的别名,我们到同一目录下查看文件: typesizes.h
我们找到了:
53 #define __PID_T_TYPE __S32_TYPE
文件typesizes.h 并没有include其他文件,但是我们可以在 bits/types.h 文件中找到如下内容:
91 #define __S32_TYPE int
所以,破案了。 pid_t 是 int 的别名。
对此我们可以写如下代码做测试:
#include <iostream> #include <typeinfo> #include <unistd.h> using namespace std; int main(){ pid_t pid; cout << typeid(pid).name() << endl; return 0; }
输出为:
由此可知 pid_t 的类型为 int
如果有帮助的话,希望可以点个赞哦