linux下的printf

      有时不要以为printf一定能打印出数据来。有时,你不在程序的每个地方printf的地方都不加上"/n”,程序根本就不打印任何数据出来,信不?!我就倒霉的遇到个一次。遇到这些很头疼的,还以为是程序哪儿出错咯。原来这是因为,它其实有缓冲的功能,只有在“/n”,它才将缓冲里的数据,打印出来。切记,切记~~

      比如在父子程序中,按理来说,子程序里面的printf绝对不会打印出父程序里面的printf数据。但你试试,在父程序里面调用printf,但不加“/n”,然后调用fork(),产生子程序。在子程序里面,你再调用printf,这回你再加上“/n”。结果,你就会发现子程序输出了父程序里面printf的数据。

父程序:

       printf("1”);

       if(fork()>0)

       {//子程序

              printf(“2/n”);

       }

 

 

结果就是:

父程序:1

子程序:12

 

对比

父程序:

       printf("1/n”);

       if(fork()>0)

       {//子程序

              printf(“2/n”);

       }

 

 

结果就是:

父程序:1

子程序:1 

 

    奇怪吧,话得说回来,是因为printf有缓冲功能,当你调用printf(不加“/n”),他会把你的数据缓冲起来,当你再调用printf(加上“/n”),他就会把里面缓冲的所有数据输出。

     所以,对于一个程序员来说,这绝对算的上是必须知道的常识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值