原文:linux系统编程之管道(二):管道读写规则

一,管道读写规则 当没有数据可读时 O NONBLOCK disable:read调用阻塞,即进程暂停执行,一直等到有数据来到为止。 O NONBLOCK enable:read调用返回 ,errno值为EAGAIN。 当管道满的时候 O NONBLOCK disable: write调用阻塞,直到有进程读走数据 O NONBLOCK enable:调用返回 ,errno值为EAGAIN 如果所有 ...

2013-07-15 23:58 1 5755 推荐指数:

查看详情

Linux系统编程之匿名管道

1.进程间通信介绍 1.1 进程通信的基本概念 在之前我们已经学习过进程地址空间。Linux 环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程 ...

Thu Dec 02 02:00:00 CST 2021 0 266
linux系统编程之管道(一):匿名管道(pipe)

一,什么是管道 管道Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统管道对于管道两端的进程 ...

Tue Jul 16 06:01:00 CST 2013 0 4523
linux系统编程之管道(三):命令管道(FIFO)

一,匿名管道PIPE局限性 管道的主要局限性正体现在它的特点上: 只支持单向数据流; 只能用于具有亲缘关系的进程之间; 没有名字; 管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区分配一个页面大小); 管道所传送的是无格式字节流,这就要求管道的读出 ...

Tue Jul 16 19:05:00 CST 2013 0 6754
Linux系统编程之命名管道与共享内存

在上一篇博客中,我们已经熟悉并使用了匿名管道,这篇博客我们将讲述进程间通信另外两种常见方式——命名管道与共享内存。 1.命名管道 管道是使用文件的方式,进行进程之间的通信。因此对于管道的操作,实际上还是用诸如write,read等接口实现。 匿名管道应用的一个限制就是只能在具有亲缘关系(如父 ...

Fri Dec 03 06:40:00 CST 2021 0 759
Linux系统编程—有名管道

▋****1. 管道的概念 管道,又名「无名管理」,或「匿名管道」,管道是一种非常基本,也是使用非常频繁的IPC方式。 1.1 管道本质 管道的本质也是一种文件,不过是伪文件,实际上是一块内核缓冲区,大小4K; 管道创建以后会产生两个文件描述符,一个是读端,另一个是写端; 管道 ...

Sat Oct 10 05:27:00 CST 2020 0 426
Linux系统编程之文件IO

前言 在学习C语言时,我们接触过如fopen、fclose、fseek、fgets、fputs、fread、fwrite等函数,实际上,这些函数是对于底层系统调用的封装。C默认会打开三个输入输出流,分别是stdin,stdout,stderr。执行man stdin后,会展示如下描述 ...

Mon Nov 08 16:31:00 CST 2021 0 247
Linux系统编程之waitpid函数

之前在学习回收子进程的时候,关于“回收指定子进程”一直拎不清,今日终于顿悟,写此博客,记录之。 之前错误代码,在循环创建的五个子进程中,指定回收第三个: 错误分析:      从打 ...

Mon Sep 21 07:53:00 CST 2020 0 424
Linux系统编程之进程概念

注:本文部分图片来源于网络,如有侵权,请告知删除 1. 什么是进程? 在了解进程概念之前,我们需要先知道程序的概念。 程序,是指编译好的二进制文件,这些文件在磁盘上,并不占用系统资源。 进程,指的是一个程序的执行实例,是操作系统分配系统资源的单位,这里的系统资源有CPU时间,内存等。当程序 ...

Sat Nov 06 17:40:00 CST 2021 0 123
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM