linux学习:进程间通信—管道
2023-09-14 09:08:57 时间
1、进程间通信当中一种比較简单的方法是管道操作
编译执行输出例如以下:
/* ============================================================================ Name : Test.c Author : wangchuan Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main(int argc,char* argv[]) { int fd[2],cld_pid,len; char buf[200]; if(pipe(fd) == -1){ perror("创建管道出错"); exit(1); } if((cld_pid=fork()) == 0){ close(fd[1]); len = read(fd[0],buf,sizeof(buf)); buf[len] = 0; printf("子进程从管道中读取的数据是:%s ",buf); exit(0);//结束子进程 } else{ close(fd[0]); sprintf(buf,"父进程为子进程(PID=%d)创建该数据",cld_pid); write(fd[1],buf,strlen(buf)); exit(0);//结束父进程 } return 0; }
编译执行输出例如以下:
子进程从管道中读取的数据是:父进程为子进程(PID=7309)创建该数据
相关文章
- Linux文件共享(二)——两个独立进程打开同一个文件
- linux 查看进程号并杀死进程
- Linux嗅探ettercap
- 【华为云技术分享】Linux内核编程环境 (2)
- Unix/Linux进程间通信(二):匿名管道、有名管道 pipe()、mkfifo()
- Chrome 用户数据配置文件夹保存路径在哪?(Mac OS X/Windows/Linux)
- Linux 新建用户、用户组,给用户分配权限(chown、useradd、groupadd、userdel、usermod、passwd、groupdel)
- linux分享六:进程管理
- Linux守护进程
- Supervisor安装与配置(Linux/Unix进程管理工具)
- Linux 系统与数据库安全
- linux yum清除var目录下缓存的方法
- Spark修炼之道(基础篇)——Linux大数据开发基础:第七节:进程管理
- linux du df 命令详解
- linux磁盘分区详解
- 重新点亮linux 命令树————守护进程[二十三]
- linux deepin “debconf: DbDriver “config“: config.dat 被另一个进程锁定:资源暂时不可用“
- 【实施工程师】Linux怎么查看当前进程
- 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )
- linux学习之八---Linux进程基础知识
- linux网络编程学习笔记之三 -----多进程并发服务端
- 【嵌入式开发】写入开发板Linux系统-模型S3C6410
- Linux平台几十个非常实用的 Shell 脚本实例
- 第十章 linux-深入学习字符设备驱动编程②(深入学习cdev结构)
- 检测Linux Rootkit入侵威胁——阿里云是基于行为特征如信号劫持或者文件隐藏,用户提权和网络隐藏,进程劫持等进行检测
- LXC linux容器简介——在操作系统层次上为进程提供的虚拟的执行环境,限制其使用的CPU和mem等资源,底层是linux内核资源管理的cgroups子系统
- Alpine Linux的apk软件包管理器
- WebRTC之linux ARM64交叉编译(七)