pid_t 是那一种数据类型 ?
是Linux下的进程号类型,也 就是Process ID _ Type 的缩写。其实是宏定义的unsigned int类 型。
头文件里也不过是个typedef而 已.使用 pid_t 而不使用int只是为了 可移植性好一些.因为在不同的平台上有可能 typedef int pid_t 也有可能 typedef long pid_t 。
pid_t 和int的区别?
C头文件中定义进程的id号为 一结构pid_t ,但fork时返回的 为一int量,两者间有什么区别吗?
pid_t的类型定义 创建进程时经常会用到进程号 的类型定义:pid_t。我们都知道这个类型定义实际上就是int型。但是在linux下的c中的头文件中这个定义到底是怎么定义的呢?今天就把以前找这个定义的过程贴出来:1.首先在/usr/include/sys/types.h中有如下定义#include <bits/types.h>#ifndef __pid_t_definedtypedef __pid_t pid_t;# define __pid_t_defined#endif可以看到pid_t 其实就是__pid_t 类型。2.在/usr/include/bits/types.h中 可以看到这样的定义#include <bits/typesizes.h> #if __WORDSIZE == 32 ...... # define __STD_TYPE __extension__ typedef#elif __WORDSIZE == 64 ...... #endif可以看出__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 类型的。原文出 处:http://blog.chinaunix.net/u2/77727/showart_2066648.html其实很多类似于这种类型的定 义,就是为了不同的操作系统,不同的处理器方便吧,无非是long int unsigned 之类的,理解就好~
分享到:
相关推荐
管道通信,也称为命名管道(Named Pipe)或FIFO(First In First Out),是Linux和Unix-like操作系统中的一种进程间通信(IPC, Inter-Process Communication)机制。它允许不同进程之间进行单向或双向的数据传输,...
进程间通信之有名管道(fifo) 注意: 如果只打开有名管道的一端 则系统将暂时阻塞打开进程 直到有另一个进程打开该管道的另一端 当前进程才会继续执行 七种进程间通信方式: 一 无名管道( pipe ) 二 有名管道...
命名管道(FIFO)在Linux系统编程中是一种重要的进程间通信(IPC,Inter-Process Communication)机制。它允许两个没有亲缘关系的进程之间进行数据交换,类似于物理世界的管道,数据从一端流入,另一端流出。FIFO是...
总结来说,C语言实现FIFO涉及理解操作系统内核提供的管道和FIFO机制,以及如何通过系统调用进行进程间的通信。掌握这些知识对于编写多进程协同工作的应用程序至关重要。在实践中,还需要关注同步、错误处理以及资源...
命名管道,也称为FIFO(First In First Out),是Unix/Linux操作系统中的一种进程间通信机制。它是无名管道的一种扩展,允许两个不相关的进程通过一个临时文件系统对象进行通信,这个对象就是命名管道。FIFO提供了...
总结来说,通过FIFO和管道PIPE的配合,我们可以构建一个灵活的进程间通信系统。利用epoll的异步I/O特性,可以有效地避免进程间的阻塞,提高系统的响应速度和吞吐量。这种技术在服务器编程、实时系统和高并发应用中...
在Linux系统中,有多种实现进程间通信的方式,包括管道、FIFO(有名管道)、消息队列、信号量和共享内存等。这里我们将主要讨论管道和FIFO这两种方法。 **管道(Pipe)** 管道是一种半双工(即数据只能在一个方向...
本文将详细介绍五种常见的IPC技术:消息队列、共享内存、信号量、管道和FIFO。 首先,消息队列是Linux中的一种通信方式,它允许进程以异步的方式发送和接收消息。每个消息都有一个唯一的标识符,接收方可以根据这个...
开源社区提供了多种FIFO实现,如Linux内核中的pipe(管道)和有名管道(FIFO文件)。这些实现通常基于内存缓冲区,通过系统调用实现进程间的通信。例如,pipe是无名的、半双工的FIFO,只允许两个进程之间进行通信;...
这些范例代码涵盖了进程间通信的基础,包括管道和FIFO,这些都是网络编程中重要的话题。它们帮助读者理解如何在不同进程中传递数据,以及如何处理并发和同步问题。通过实践这些代码,读者能够更深入地学习网络编程中...
### Linux进程通信:命名管道FIFO详解 #### 一、命名管道(FIFO)概述 命名管道,也称为FIFO(File-In-First-Out),是Linux系统中的一种进程间通信(IPC)机制。它允许不同进程之间通过共享文件系统来进行数据交换。与...
在"fifo.rar_命名管道"这个压缩包中,包含的两个源代码文件“fifo_read.c”和“fifo_write.c”可能分别展示了如何创建和操作命名管道进行读写操作的基础示例。 命名管道与匿名管道类似,都是半双工的(即数据只能...
压缩包内的“fifo”文件可能是一个示例程序或者包含有关FIFO管道的文档,用于演示如何创建和使用管道。实际操作中,开发者可能会用C、Python等编程语言来实现管道通信,通过系统调用如open(), read(), write(), 和...
标题中的“fifo.zip_管道”暗示我们这里讨论的是与Unix/Linux系统中FIFO(先进先出)管道相关的编程接口和实践。FIFO管道是一种特殊的文件,允许不同进程之间进行同步数据传输。 **FIFO的定义** FIFO,也称为命名...
在实验一命名管道:FIFO的压缩包中,可能还包含编译和运行这些程序所需的Makefile或其他脚本,以及可能的解释文档。通过运行这些程序,你可以直观地了解命名管道的工作流程,并学习如何在嵌入式Linux环境中实现进程...
标题中的"fifo.zip_基于管道"暗示我们讨论的是如何使用管道(FIFO,First In First Out)来构建一个简单的聊天程序。在这个场景下,"fifo"文件很可能是创建的一个命名管道,用于两个或多个进程之间的数据传输。 ...
读者通过本书将能掌握各种现行的IPC技术,其中有:管道和FIFO;Posix和System V消息队列;互斥锁和条件变量;读写锁;记录上锁;Posix和System V信号灯;Posix和System V共享内存;Solaris门和Sun RPC;IPC技术的...
读者通过本书将能掌握各种现行的IPC技术,其中有:管道和FIFO;Posix和System V消息队列;互斥锁和条件变量;读写锁;记录上锁;Posix和System V信号灯;Posix和System V共享内存;Solaris门和Sun RPC;IPC技术的...