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,
LinkedHashMap基本用法&使用实现简单缓存 dedecms网站被黑 劫持到其他网站如何解决苹果不送充填器耳机真为环保?可能还是为了赚钱吧图片格式转换错误总结-myBatis plus 分页numpy:多维数组的创建用C语言做很简单的飞机游戏Keras保存与加载模型(JSON+HDF5)福布斯中国汽车富豪榜:何小鹏第11 李想第14 李斌第15hive大量小文件处理方法总结