标准I/O库提供缓冲的目的是尽可能减少使用read和write调用的次数。标准I/O提供三个类型的缓冲:全缓冲、行缓冲和不带缓冲。标准输入(stdin)和标准输出(stdout)是行缓冲,标准出错(stderr)是不带缓冲的。行缓冲指当在输入输出中遇到换行符时,标准I/O库执行I/O操作。

fork函数:

 #include <unistd.h>
pid_t fork(void)
/*返回值:
* 子进程中返回0,父进程中返回子进程ID,出错返回-1
*/

子进程和父进程继续执行fork调用之后的指令。子进程是父进程的副本。子进程获得父进程数据空间、堆和栈的副本。

 #include <unistd.h>
#include <stdio.h>
int
main()
{
int i=;
for(i=;i<;i++)
{
fork();
printf("-");
}
printf("\n");
return ;
}

执行该程序结果截图:

改进一下程序:

 #include <unistd.h>
#include <stdio.h>
int
main()
{
int i=;
for(i=;i<;i++)
{
fork();
printf("-");
}
printf("pid=%d\n",getpid());
sleep();
return ;
}

运行结果截图:

本程序会产生4个进程。一个主进程,执行两次输出“-”。一个子进程执行两次输出“-”,另外两个子进程执行一次输出“-”,但是它们被fork生成时复制了父进程的输出缓冲区。

最新文章

  1. 利用for循环找出1000以内的质数
  2. sh6.脚本磁盘分区格式化
  3. 盘点销售一体机 打印POS一体的设备。 打印,盘点,销售PDA(手持终端)+移动销售POS软件
  4. mac 设置阿里企业邮箱
  5. 【NOIP 2015 &amp; SDOI 2016 Round1 &amp; CTSC 2016 &amp; SDOI2016 Round2】游记
  6. Silverlight管理系统源码(用于开发ERP、OA、CRM、HR、进销存、财务等系统之用)
  7. LightOJ 1248 Dice (III) 概率
  8. NAND FLASH均衡算法笔记(转)
  9. 如何配置LCD背光和LED,调试方法
  10. Java反射机制(取得类的结构)
  11. Linux学习笔记3——Linux中常用系统管理命令
  12. apple watch 与 iphone 之间的通信方式
  13. SpringMVC中url-pattern /和/*的区别
  14. Akka-CQRS(0)- 基于akka-cluster的读写分离框架,构建gRPC移动应用后端架构
  15. 启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
  16. [转] css3变形属性transform
  17. What is the best Java email address validation method?
  18. mongodb自动关闭:页面文件太小,无法完成操作
  19. Python安装模块出错(No module named setuptools)解决方法
  20. 理解 CSS 的 z-index 属性

热门文章

  1. 读改善c#代码157个建议:建议1~3
  2. Oracle拉进sqlserver表声明的建设
  3. c# 硬件开源神器netduino的开发中慎用Cpu.Pin
  4. android 简单的登录
  5. HDU ACM 1007 Quoit Design 分而治之的方法,最近点
  6. JavaScript学习之获取URL参数
  7. 包装类、Object类——Java笔记(八)
  8. springmvc4
  9. MVC中的Repository模式
  10. sgu 194 被动散热器具有最大流量的上限和下限(最大流量模板dinic加上优化)