Linux pid t 型別的定義

2021-08-19 17:57:13 字數 1538 閱讀 7505

pid_t 型別在 linux 環境程式設計中用於定義程序 id,需要引入標頭檔案,首先看一下頭檔案/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的定義。

標頭檔案中包含了標頭檔案,根據名稱可見與型別的定義相關,我們在標頭檔案中找到了__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的定義,在標頭檔案中我們發現__pid_t_type的定義如下:

#define __pid_t_type            __s32_type
至此,我們找到了pid_t的定義等同於__s32_type。那__s32_type又是什麼型別呢?我們返回至標頭檔案發現有如下定義:

#define __s32_type              int
至此,我們得出如下結論:

pid_t 等於 int。

Objective C 定義的型別

以下列出的是objective c內建的型別集合 型別定義 id物件的引用 指向其資料結構的指標 class類物件的引用 指向其資料結構的指標 sel選標 編譯器分配用來區分方法名的編碼 imp指向方法實現的指標,該實現返回id bool布林值,yes or no nil空的物件指標,id 0 ni...

pid t的型別定義

pid t的型別定義 建立程序時經常會用到程序號的型別定義 pid t。我們都知道這個型別定義實際上就是int型。但是在linux下的c中的標頭檔案中這個定義到底是怎麼定義的呢?今天就把以前找這個定義的過程貼出來 1.首先在 usr include sys types.h中有如下定義 include...

pid t的型別定義

建立程序時經常會用到程序號的型別定義 pid t。我們都知道這個型別定義實際上就是int型。但是在linux下的c中的標頭檔案中這個定義到底是怎麼定義的呢?今天就把以前找這個定義的過程貼出來 1.首先在 usr include sys types.h中有如下定義 include ifndef pid...