C 控制父、子进程的先后顺序执行
#include "include/apue.h"
static int pfd1[2], pfd2[2];
void TELL_WAIT(void)
{
//创建管道
if (pipe(pfd1) < 0 || pipe(pfd2) < 0)
err_sys("pipe error");
}void TELL_PARENT(pid_t pid)
{
//把数据写进pfd2管道(写端-标准输出)
if (write(pfd2[1], "c", 1) != 1)
err_sys("write error");
}void WAIT_PARENT(void)
{
char c;
//从pfd1管道(读端-标准输入)中读数据
if (read(pfd1[0], &c, 1) != 1)
err_sys("read error");
if (c != 'p')
err_quit("WAIT_PARENT:incorrect data");
}void TELL_CHILD(pid_t pid)
{
if (write(pfd1[1], "p", 1) != 1)
err_sys("write error");
}void WAIT_CHILD(void)
{
char c;if (read(pfd2[0], &c, 1) != 1)
err_sys("read error");
if ( c != 'c' )
err_quit("WAIT_CHILD: incorrent data");
}int main()
{
pid_t pid;TELL_WAIT();
if ((pid = fork()) < 0)
{
err_sys("fork error!");
}
else if (pid == 0)
{
TELL_PARENT(getpid());
WAIT_PARENT();
printf ("2222222222\n");
}
else
{
TELL_CHILD(pid);
WAIT_CHILD();
printf ("1111111111\n");
}return 0;
}
执行结果:
2222222222
11111111111
C 控制父、子进程的先后顺序执行相关推荐
- 树莓派小车教程(三)之——初步实现网页控制小车速度可调(顺序执行)
项目场景: 之前写了一篇手把手树莓派小车教程(二)之--基于Tornado框架的网页控制小车(按键+鼠标点击).当时只记录了如何通过Tornado框架能让网页控制小车跑起来(以恒定速度),但是项目中小 ...
- python如何控制程序的运行顺序_Python流程控制-1 顺序执行
流程控制指的是代码运行逻辑.分支走向.循环控制,是真正体现我们程序执行顺序的操作.流程控制一般分为顺序执行.条件判断和循环控制. 顺序执行 Python代码在执行过程中,遵循下面的基本原则: 普通语句 ...
- Java中控制多线程顺序执行
Java中控制多线程顺序执行 一.概述 二.普通示例 三.控制示例 3.1.设置线程优先级 3.2.使用线程类的join() 3.2.1.在主线程join() 3.2.2.在子线程join() 3.3 ...
- jmeter 线程执行顺序_面试官让我说出8种线程顺序执行的方法!我懵了
https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止 ...
- 面试官:线程顺序执行,这么多答案你都答不上来?
前言:最近在面试过程中,发现一些面高程的朋友连怎么实现线程顺序执行都答不上来,特分享相关文章,以作科普,有收获帮忙点个在看,感谢,助中秋快乐! 一.实现 本文使用了8种方法实现在多线程中让线程按顺序运 ...
- [转载] --- 让线程按顺序执行8种方法
看到一篇比较用心的总结,涉及到很多知识点,转来保存,而且我把里面的每个方法都试了一遍,亲测没问题 此次转载,还新增了一些说明和结构 我的总结: 其实,让线程按顺序执行,其实就是一个让多线程强行串行化的 ...
- 让线程按顺序执行8种方法(转载)
该文章为转载,出处:https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了7中方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中 ...
- 让线程按顺序执行 8 种方法
作者:俊俊的小熊饼干 cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止为 ...
- 按照顺序执行异步ajax的回调函数
//按顺序执行多个ajax命令,因为数量不定,所以采用递归 function send(action, arg2) {//将多个命令按顺序封装成数组对象,递归执行//利用了deferred对象控制回调 ...
最新文章
- KubeEdge — Overview
- 一起学nRF51xx 21 - 蓝牙项目工程的初始化流程解读
- C++的三种容器适配器
- 2262: master(vector + dfs)
- 初试Octave软件
- [jQuery1.9]Cannot read property ‘msie’ of undefined错误的解决方法
- Intellij IDEA汉化教程
- 【Dart学习】-- Dart之匿名方法闭包
- 中国移动加快自主创新推动我国主导4G标准引领国际
- 腾达无线usb wifi 网卡u1/u3 RTL8192EU在centos7.6/7.7的编译适配
- 台式计算机用什么网卡,台式机没有网卡怎么办
- 怎样理解封装,继承,多态!三者的区别?
- 深入理解Java虚拟机读书笔记之垃圾收集器与内存分配策略
- 这些旅游类短视频账号在快手涨粉的总结
- oracle.简单查询、排序、限定查询、单行函数
- 中国式父母计算机科学家攻略,中国式家长攻略大全:全结局解锁技巧汇总[多图]...
- IT人理科男不懂浪漫?事实真的是这样吗?
- Vue项目大屏可视化适配 transform+解决高德地图经纬度偏移
- C++—— 数组名与向量名
- 冰蝎利用免杀webshell链接,反弹shell(附免杀webshell和工具)
热门文章
- 为啥我的Python这么慢 (一)
- 2.1基本算法之枚举_1749数字方格
- matlab调用sh函数,Shell 函数定义与调用
- python如何用色度表示数值大小_python中色度通道的YUV子采样
- 【ES6(2015)】Generator
- Python笔记-UiSelector坐标定位
- Python工作笔记-使用Py遍历文件夹及其子文件夹内容
- C++|Qt工作笔记-对explicit的认识(Qt中一般情况下为什么会自动加上这个关键字)
- 阿里云服务器CentOS6.8安装JDK
- java简单编程_「4」Java简单编程