进程号的类型定义pid_t

创建进程时经常会用到进程号的类型定义:pid_t。我们都知道这个类型定义实际上就是int型。但是在linux下的c中的头文件中这个定义到底是怎么定义的呢?今天就把以前找这个定义的过程贴出来:

1.首先在/usr/include/sys/types.h中有如下定义

#include 
     ......
    
#ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif
可以看到pid_t 其实就是__pid_t类型。

2.在/usr/include/bits/types.h中可以看到这样的定义

#include

#if __WORDSIZE == 32
        ......
# define __STD_TYPE        __extension__ typedef
#elif __WORDSIZE == 64
          ......
#endif
        ......
__STD_TYPE __PID_T_TYPE __pid_t;    /* Type of process identifications.  */

可以看出__pid_t 有被定义为 __extension__ typedef  __PID_T_TYPE类型的。

3.在文件/usr/include/bits/typesizes.h中可以看到这样的定义(这个文件中没有包含任何的头文件):

#define __PID_T_TYPE        __S32_TYPE

可以看出__PID_T_TYPE有被定义为__S32_TYPE这种类型。

4.在文件/usr/include/bits/types.h中我们终于找到了这样的定义:

#define    __S32_TYPE        int

由此我们终于找到了pid_t的真实定义:实际他就是  int  类型的。

时间: 2024-12-18 06:05:19

进程号的类型定义pid_t的相关文章

每天进步一点点——重新认识Linux中的进程号

转载请说明出处:http://blog.csdn.net/cywosp/article/details/38968011 1. 概述 众所周知,进程(process)是一个可执行程序的实例,但是在Linux中进程可以重新改写为,进程是由内核定义的抽象的实体,并为该实体分配用以执行程序的各项系统资源.从内核的角度看,进程由用户内存空间(user-space memory)和一系列内核数据结构组成,其中用户内存空间包含了程序代码及代码所使用的变量,而内核数据结构则用于维护进程状态信息.记录在内核数据

进程与线程的定义、关系及区别

进程与线程的定义.关系及区别     --参考博客文章:http://blog.csdn.net/yanxiaolx/article/details/51763372 一.进程的定义 进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令.数据和堆栈等组成的,是一个能独立运行的活动实体. 进程一般有三个状态:就绪状态.执行状态和等待状态[或称阻塞状态]:进程只能由父进程建立,系统中所有的进程形成一种进程树的层次体系:挂起命令可由进程自己和其他进程发出,但是解除挂起命令只能由其他进

XML之------DTD(文档类型定义)

一.DTD概述 1.XML文档是一种元标记语言,即一种定义标记语言的语言.在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义. 2.DTD文档是这些新的标记语言的法律性文档.如果XML文档的语法符合DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档. 二.DTD的作用 DTD定义了文档的逻辑结构,规定了文档中所使用的元素.实体.元素的属性.元素与实体之间的关系. 1.使用D

XML文档类型定义---DTD文档

DTD的作用 XML文档是一种元标记语言,即一种定义标记语言的语言.在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义.DTD文档是这些新的标记语言的法律性文档.如果XML文档的语法符,DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档.合法的XML文档在实际应用中的地位很重要,因为只有合法的XML文档才能被应用软件有效地处理. DTD定义了文档的逻辑结构,规定了文档中所使

DTD文档类型定义文件简介

dtd 基本概念: dtd ( document type definition  文档类型定义),该文件一般和xml文件配合使用, 主要的用处是约束 xml. 除了 dtd 技术外, 还有一个schema的技术也可以用于约束xml文件的书写规范. 现在请看一个问题: <stu id="a"0&apos;0&apos;1<" > <name>杨过</name> <sex>男</sex> <

Shell 脚本 ,, 根据进程号退出 从而关机

#!/bin/bash fun(){ ps -ef | grep "$1" | awk '{print $2 $8}' > /usr/file while read line ;do if [[ $line == $1 ]] then # do something // return fi done < /usr/file echo "shutdown ... after 3s " sleep 3 shutdown -h now } while true

OSPF ProcessID(进程号)详解

一.OSPF ProcessID本地有效 首先明确一下,OSPF ProcessID,范围为1-65535,用于在路由器本地标识OSPF进程. 看上图,R1使用进程号10创建了一个OSPF进程,同时宣告了自己的直连接口:而R2使用进程号20创建了一个OSPF进程,同时也宣告了自己的直连接口.虽然这两个进程号不一样,但是我们说,OSPF进程号只是本地有效,这句话的意思是,对于R1而言,它并不关心它的直连OSPF邻居-R2使用的是什么OSPF进程号,10也号,20也罢,这就有点像“自己的事自己知道”

[C语言]进阶|结构类型: 枚举, 结构, 类型定义

--------------------------------------------------------------------- 枚举: // main.c #include <stdio.h> const int red = 0; const int yellow = 1; const int green = 2; int main(int argc, const char * argv[]) { /* 常量符号化:用符号而不是具体的数字来表示程序中的数字; 这样看到符号才能知道背

宏不是类型定义

#include <iostream> #include <iomanip> #include <string> using namespace std; struct CarType { string maker; int year; float price; }; //使用这样的宏定义还有着可移植性的优势,所有的C编译器都支持它. #define EXAMPLE1 struct CarType * //很多编译器不支持如下方法 typedef struct CarT