关于fork()tengxun - 牛牛娱乐

关于fork()tengxun

2019-02-09 08:03:40 | 作者: 鸿德 | 标签: 设备,字符,进程 | 浏览: 7393

还有一个很重要的东西是,在fork()的调用途,整个父进程空间会原模原样地复制到子进程中,包含指令,变量值,程序调用栈,环境变量,缓冲区,等等。

所以,上面的那个程序为什么会输入8个“-”,这是由于printf(“-”);句子有buffer,所以,关于上述程序,printf(“-”);把“-”放到了缓存中,并没有真实的输出(参看《C言语的迷题》中的第一题),在fork的时分,缓存被复制到了子进程空间,所以,就多了两个,就成了8个,而不是6个。

别的,多说一下,咱们知道,Unix下的设备有“块设备”和“字符设备”的概念,所谓块设备,就是以一块一块的数据存取的设备,字符设备是一次存取一个字符的设备。磁盘、内存都是块设备,字符设备如键盘和串口。块设备一般都有缓存,而字符设备一般都没有缓存。

关于上面的问题,咱们假如修正一下上面的printf的那条句子为:

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章