`
lionvp
  • 浏览: 30909 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

管道和FIFO

阅读更多
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 之类的,理解就好~
分享到:
评论

相关推荐

    管道通信fifo程序

    管道通信,也称为命名管道(Named Pipe)或FIFO(First In First Out),是Linux和Unix-like操作系统中的一种进程间通信(IPC, Inter-Process Communication)机制。它允许不同进程之间进行单向或双向的数据传输,...

    进程间通信之有名管道(fifo) 完整代码

    进程间通信之有名管道(fifo) 注意: 如果只打开有名管道的一端 则系统将暂时阻塞打开进程 直到有另一个进程打开该管道的另一端 当前进程才会继续执行 七种进程间通信方式: 一 无名管道( pipe ) 二 有名管道...

    命名管道(FIFO)示例代码

    命名管道(FIFO)在Linux系统编程中是一种重要的进程间通信(IPC,Inter-Process Communication)机制。它允许两个没有亲缘关系的进程之间进行数据交换,类似于物理世界的管道,数据从一端流入,另一端流出。FIFO是...

    fifo 的C语言实现

    总结来说,C语言实现FIFO涉及理解操作系统内核提供的管道和FIFO机制,以及如何通过系统调用进行进程间的通信。掌握这些知识对于编写多进程协同工作的应用程序至关重要。在实践中,还需要关注同步、错误处理以及资源...

    命名管道,FIFO。

    命名管道,也称为FIFO(First In First Out),是Unix/Linux操作系统中的一种进程间通信机制。它是无名管道的一种扩展,允许两个不相关的进程通过一个临时文件系统对象进行通信,这个对象就是命名管道。FIFO提供了...

    FIFO配合管道PIPE,实现FIFO传递数据,PIPE触发epoll,异步IO效果

    总结来说,通过FIFO和管道PIPE的配合,我们可以构建一个灵活的进程间通信系统。利用epoll的异步I/O特性,可以有效地避免进程间的阻塞,提高系统的响应速度和吞吐量。这种技术在服务器编程、实时系统和高并发应用中...

    进程间通信(1)PPT文档.pptx

    在Linux系统中,有多种实现进程间通信的方式,包括管道、FIFO(有名管道)、消息队列、信号量和共享内存等。这里我们将主要讨论管道和FIFO这两种方法。 **管道(Pipe)** 管道是一种半双工(即数据只能在一个方向...

    5种进程间通信(IPC)技术

    本文将详细介绍五种常见的IPC技术:消息队列、共享内存、信号量、管道和FIFO。 首先,消息队列是Linux中的一种通信方式,它允许进程以异步的方式发送和接收消息。每个消息都有一个唯一的标识符,接收方可以根据这个...

    fifo设计及实现

    开源社区提供了多种FIFO实现,如Linux内核中的pipe(管道)和有名管道(FIFO文件)。这些实现通常基于内存缓冲区,通过系统调用实现进程间的通信。例如,pipe是无名的、半双工的FIFO,只允许两个进程之间进行通信;...

    《网络编程技术及应用》范例代码

    这些范例代码涵盖了进程间通信的基础,包括管道和FIFO,这些都是网络编程中重要的话题。它们帮助读者理解如何在不同进程中传递数据,以及如何处理并发和同步问题。通过实践这些代码,读者能够更深入地学习网络编程中...

    Linux进程通信:命名管道FIFO小结.doc

    ### Linux进程通信:命名管道FIFO详解 #### 一、命名管道(FIFO)概述 命名管道,也称为FIFO(File-In-First-Out),是Linux系统中的一种进程间通信(IPC)机制。它允许不同进程之间通过共享文件系统来进行数据交换。与...

    fifo.rar_命名管道

    在"fifo.rar_命名管道"这个压缩包中,包含的两个源代码文件“fifo_read.c”和“fifo_write.c”可能分别展示了如何创建和操作命名管道进行读写操作的基础示例。 命名管道与匿名管道类似,都是半双工的(即数据只能...

    fifo.zip_casetgn_管道

    压缩包内的“fifo”文件可能是一个示例程序或者包含有关FIFO管道的文档,用于演示如何创建和使用管道。实际操作中,开发者可能会用C、Python等编程语言来实现管道通信,通过系统调用如open(), read(), write(), 和...

    fifo.zip_管道

    标题中的“fifo.zip_管道”暗示我们这里讨论的是与Unix/Linux系统中FIFO(先进先出)管道相关的编程接口和实践。FIFO管道是一种特殊的文件,允许不同进程之间进行同步数据传输。 **FIFO的定义** FIFO,也称为命名...

    FIFO管道命名实验

    在实验一命名管道:FIFO的压缩包中,可能还包含编译和运行这些程序所需的Makefile或其他脚本,以及可能的解释文档。通过运行这些程序,你可以直观地了解命名管道的工作流程,并学习如何在嵌入式Linux环境中实现进程...

    fifo.zip_基于管道

    标题中的"fifo.zip_基于管道"暗示我们讨论的是如何使用管道(FIFO,First In First Out)来构建一个简单的聊天程序。在这个场景下,"fifo"文件很可能是创建的一个命名管道,用于两个或多个进程之间的数据传输。 ...

    UNIX网络编程 卷II(Part1)

    读者通过本书将能掌握各种现行的IPC技术,其中有:管道和FIFO;Posix和System V消息队列;互斥锁和条件变量;读写锁;记录上锁;Posix和System V信号灯;Posix和System V共享内存;Solaris门和Sun RPC;IPC技术的...

    UNIX网络编程 卷II(Part2)

    读者通过本书将能掌握各种现行的IPC技术,其中有:管道和FIFO;Posix和System V消息队列;互斥锁和条件变量;读写锁;记录上锁;Posix和System V信号灯;Posix和System V共享内存;Solaris门和Sun RPC;IPC技术的...

Global site tag (gtag.js) - Google Analytics