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