pid_t 类型在 Linux 环境编程中用于定义进程 ID,需要引入头文件<sys/types.h>,首先看一下头文件
/usr/include/sys/types.h中关于 pid_t 的定义。
#ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined #endif
可见pid_t等同于__pid_t,继续寻找__pid_t的定义。

头文件<sys/types.h>中包含了头文件<bits/types.h>,根据名称可见与类型的定义相关,我们在头文件<bits/types.h>中找到了
__pid_t的定义如下:
#if __WORDSIZE == 32 #define __STD_TYPE __extension__ typedef #elif __WORDSIZE
== 64 # define __STD_TYPE typedef #else # error #endif __STD_TYPE __PID_T_TYPE
__pid_t; /* Type of process identifications. */
也就是说如果我们编译的程序是 32 位的,那么__pid_t的定义如下:
__extension__ typedef __PID_T_TYPE __pid_t;
如果我们编译的程序是 64 位的,那么__pid_t的定义如下:
typedef __PID_T_TYPE __pid_t;
其中__extension__的作用是:GCC 对标准 C 语言进行了扩展,但用到这些扩展功能时,编译器会提出警告,使用__extension__
关键字会告诉GCC 不要提出警告。

__pid_t的定义等同于__PID_T_TYPE,我们继续寻找__PID_T_TYPE的定义,在头文件<bits/typesizes.h>中我们发现
__PID_T_TYPE的定义如下:
#define __PID_T_TYPE __S32_TYPE
至此,我们找到了pid_t的定义等同于__S32_TYPE。那__S32_TYPE又是什么类型呢?我们返回至头文件<bits/types.h>发现有如下定义:
#define __S32_TYPE int
至此,我们得出如下结论:
pid_t 等于 int。

技术
©2019-2020 Toolsou All rights reserved,
Element-Ui组件 Message 消息提示, alert 弹窗Java:案例理解-接口回调element-ui踩坑记录【Golang 基础系列十】Go 语言 条件语句之if使用css样式设计一个简单的html登陆界面2020顺丰前端暑期实习面经(已过)无孔化就是手机的未来?还有很多问题需要解决【C#】实现学生成绩信息管理系统云原生应用如何做到低成本获得高稳定?用HTML+CSS做一个漂亮简单的个人网页