R Field - 2012年1月
type: channel
link: http://www.ramlife.org/2012/01/
description: 通玄小论
items: fork 与 printf("\n")

fork 与 printf("\n")
type: item
date: 2012-01-19T16:04:00+08:00
description: fork 作用是建立一个子进程，父子进程之间在fork()之后分道扬镳，子进程会获得一个父进程数据的副本。 在fork语句之前，printf有没有增加"\n"是非常重要的。如果没有"\n"那么printf的内容会写入显示缓冲，那么fork之后，子进程也会获得这个缓冲，所以如果在fork之前有printf，并且没有增加 "\n" 那么最后同样的内容，子进程和父进程会都打印一遍。 但是如果增加了 "\n" 就是立即显示了，那么子进程就不会有相应的显示缓冲，所以只会打印一遍.