说明:涉及到的头文件(.h),目录默认都是基于 /usr/include/ 目录.

1.在 "/sys/types.h"中,有下列内容:

 #include <bits/types.h>
#ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif

很明显, pid_t 只是 __pid_t 的别名.或者说, pid_t 类型其实是 __pid_t 类型.

2.在"bits/types.h"中,有下列内容:

 /* We want __extension__ before typedef's that use nonstandard base types
118 such as `long long' in C89 mode. */
# define __STD_TYPE __extension__ typedef
#elif __WORDSIZE == 64
...
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications.
*/

由第一行和第二行的注释中,我们可以忽略 __extension__ 的分析.故 __STD_TYPE 表示 typedef.所以在第七行的代码中,可以知道:

__pid_t 类型 其实是 __PID_T_TYPE 类型.

3.在 "bits/typesizes.h" 中,有以下内容:

 /* See <bits/types.h> for the meaning of these macros.  This file exists so
28 that <bits/types.h> need not vary across different GNU platforms. */ ...
#define __PID_T_TYPE __S32_TYPE

由此我们知道 __PID_T_TYPE 就是 __S32_TYPE 类型.并且这个文件没有引用任何其他的头文件.

4.在 "bits/types.h" 文件中,我们看到有以下内容:

 #define __S32_TYPE              int

由此,最终可以知道,__S32_TYPE 就是 int 类型,也就是说, pid_t  其实就是 int 类型.

引自:  http://doudouclever.blog.163.com/blog/static/17511231020112248130302/

Linux中 pid_t 类型的定义.的更多相关文章

  1. Linux中pid_t类型为int类型

    1. 查看man手册,找到pid_t,可以通过getpid函数来看 2. 打开sys/types.h 3. 打开bits/types.h 4. 打开bits/typesizes.h 找不到相关的头文件 ...

  2. c#中枚举类型的定义与使用

    介绍枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举.定义默认基数从O开 ...

  3. C++中的类型重定义

    发现重复定义是由于从两个不同的路径包含了同一个头文件而引起的,同事也建议从另外一个路径打开工程试试, 这才慢慢发现了原因.这个原因可能有些拗口,而事实上要出现这种错误也有些"曲折" ...

  4. schema中字段类型的定义

    当schema中字段类型为String时,保存的时候如果该字段为Number也可以保存成功,mongoose会自动将其转换为数字字符串. 当schema中字段类型为Number时,保存的时候如果该字段 ...

  5. linux中档案类型

    我们用ls-l命令时,在第一列的第一个字符表示是档案类型.如: 那d和-等这些都表示什么呢? [ d ]-------目录 [ - ]--------文件 [ l ]---------连结档(link ...

  6. LINUX中关于SIGNAL的定义

    /* Signals. */ #define SIGHUP 1 /* Hangup (POSIX). */ #define SIGINT 2 /* Interrupt (ANSI). */ #defi ...

  7. linux中的文件类型以及查看文件类型的方法

    Linux文件类型和文件的文件名所代表的意义是两个不同的概念,在linux中文件类型与文件扩展名没有关系.它不像Windows那样是依靠文件后缀名来区分文件类型的,在linux中文件名只是为了方便操作 ...

  8. Linux中THIS_MODULE宏定义详解

    一直都在耿耿于怀,这个THIS_MODULE到底是个什么玩意,linux内核中无处不在的东西.今天上网搜了一下,算是基本明白了.网上牛人写的已经比较详细,另外目前暂时没有时间往更深层次分析,所以直接贴 ...

  9. Linux中的两个经典宏定义:获取结构体成员地址,根据成员地址获得结构体地址;Linux中双向链表的经典实现。

    倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offse ...

随机推荐

  1. jquery学习 (3)文本框获取焦点之后变换样式

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 如何利用PowerPoint2013制作阶梯流程图?

    制作阶梯流程图有哪些窍门呢?下面我们一起来看看吧: ①启动PowerPoint2013,单击菜单栏--插入--形状,选择方角矩形,在图中画出来. ②画好矩形,摆放到合适的位置,如下图所示. ③然后再次 ...

  3. light oj 1248 第六周E题(期望)

    E - 期望(经典问题) Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu   Descri ...

  4. Chrome不支持NPAPI的信息与替代方案

    昨天Chrome稳定版更新到了42版,发现百度云.支付宝.网银等等的插件都失效了,打开 chrome://plugins/ 一看,NPAPI都消失了,只有flash的插件还在.解决办法是到 chrom ...

  5. -_-#【模块】getElementsByClassName

    if (!document.getElementsByClassName) { document.getElementsByClassNameForMobile = function(search) ...

  6. 【模拟】Vijos P1062 迎春舞会之交谊舞

    题目链接: https://vijos.org/p/1062 题目大意: 一群男女站成一排,一男一女配对,女的只找左边第一个空闲的男生,给定前n个女生左边的额男生个数,问前n个女生到男伴之间共有几个男 ...

  7. java NIO的多路复用及reactor模式【转载】

    关于java的NIO,以下博客总结的比较详细,适合初学者学习(http://ifeve.com/java-nio-all/) 下面的文字转载自:http://www.blogjava.net/hell ...

  8. 剑指offer---3

    1.反转单链表,输入链表的头节点,输出该链表,并输出反转后的头节点 这个题目不用再说了,写过N边了 SLnode reverse(SLnode head) { SLnode reverse_head ...

  9. freemarker的使用心得

    freemarker眼下尽管使用的公司不多,可是在某些时候就必须使用,当须要遍历json数据的时候,眼下市面上的好多显示组件都达不到要求唯一能用的也就仅仅有freemarker了.在java里使用的模 ...

  10. 解决git提交问题error: The requested URL returned error: 403 Forbidden while accessing

    git提交代码时,出现这个错误"error: The requested URL returned error: 403 Forbidden while accessing https&qu ...