Linux中 pid_t 类型的定义.

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

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

1 #include <bits/types.h>
2 #ifndef __pid_t_defined
3 100 typedef __pid_t pid_t;
4 101 # define __pid_t_defined
5 102 #endif

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

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

1 /* We want __extension__ before typedef‘s that use nonstandard base types
2 118    such as `long long‘ in C89 mode.  */
3 119 # define __STD_TYPE             __extension__ typedef
4 120 #elif __WORDSIZE == 64
5 ...
6 #include <bits/typesizes.h>     /* Defines __*_T_TYPE macros.  */
7 __STD_TYPE __PID_T_TYPE __pid_t;        /* Type of process identifications.
8  */

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

__pid_t 类型 其实是 __PID_T_TYPE 类型.

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

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

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

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

1 #define __S32_TYPE              int

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

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

时间: 2024-12-25 14:40:36

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

linux 中文件类型和颜色的区分

linux 中文件类型和颜色的区分 to be  continued linux 中文件类型和颜色的区分,布布扣,bubuko.com

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

介绍枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举.定义默认基数从O开始,也可指定数值. enum Days { Saturday=1, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday }; enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 }; 使用

schema中字段类型的定义

当schema中字段类型为String时,保存的时候如果该字段为Number也可以保存成功,mongoose会自动将其转换为数字字符串. 当schema中字段类型为Number时,保存的时候如果该字段如果是String类型,只要能转换为数字格式的字符串,也能保存成功,比如"20.17",否则会报错 在实例化模型的时候,如果传入的字段值的类型和schema中定义的不一致(上面说的可以自动转换类型的不算),那么在实例化生成的文档对象中不包含该属性.如: var schema = Schem

如何查找Linux中一些特殊数据类型定义,比如pid_t和uid_t(转)

1. 查看man手册,找到pid_t,可以通过getpid函数来看 2. 打开sys/types.h 3. 打开bits/types.h 4. 打开bits/typesizes.h 找不到相关的头文件了 5. 回到bits/types.h 找到了,为int类型 注: 1. 有时还要找这2个目录: asm/和asm-generic/ 2. 另外可通过查看Linux源码

linux中档案类型

我们用ls-l命令时,在第一列的第一个字符表示是档案类型.如: 那d和-等这些都表示什么呢? [ d ]-------目录 [ - ]--------文件 [ l ]---------连结档(link file)或者称快捷方式 [ b ]--------装置档里面的可供储存的周边设备(可随机存取装置) [ c ]---------装置档里面的序列埠设备,例如键盘.鼠标(一次性读取装置)

linux 的文件类型总结文档

win中是通过扩展名,区别文件类型(jpg,jpeg,png,gif/doc,txt,pdf/avi,wmv,mp4) linux中文件类型和或者扩展名没有关联 linux的文件类型 linux中一切皆文件: f(-)    regular file 普通文件 普通文件类型: 1.纯文本文件(ASCII编码) 2.二进制文件(binary) 3.数据类格式的文件 lastlog命令显示结果 d    directory    目录文件 l    symbolic link    软连接文件:so

Linux: Linux的文件类型及查看文件类型的方法

Linux文件类型和文件的文件名所代表的意义是两个不同的概念,在linux中文件类型与文件扩展名没有关系.它不像Windows那样是依靠文件后缀名来区分文件类型的,在linux中文件名只是为了方便操作而的取得名字.Linux文件类型常见的有:普通文件.目录.字符设备文件.块设备文件.符号链接文件等. 一 常见的文件类型 1,普通文件类型 Linux中最多的一种文件类型, 包括 纯文本文件(ASCII):二进制文件(binary):数据格式的文件(data);各种压缩文件.第一个属性为 [-] .

Linux中THIS_MODULE宏定义详解

一直都在耿耿于怀,这个THIS_MODULE到底是个什么玩意,linux内核中无处不在的东西.今天上网搜了一下,算是基本明白了.网上牛人写的已经比较详细,另外目前暂时没有时间往更深层次分析,所以直接贴过来得了... 转帖网址: http://blog.csdn.net/a954423389/archive/2010/12/27/6101369.aspx 源码位置: @ kernel/module.c @ include/linux/module.h 结构体struct module在内核中代表一

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

倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offsetof 1.1 offsetof介绍 定义:offsetof在linux内核的include/linux/stddef.h中定义.#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 说明:获得结构体(TYPE)的变量成员(