[quote=引用 13 楼 我叫RT的回复:]你可以这样想,在我们编写的程序中会经常用到printf()函数进行数据的输出,而printf()函数要想把内容输出,就要在该函数内部调用有关输出的系统调用,就想你去商店买东西,早上去买包零食,中午去买包泡面,晚上又去买包饼干。那么这一来二去在路上浪费了不少时间,那么何不一次性全买回来呢。同样的,在函数中调用系统调用时,从我们的用户状态切换到内核态也要产生消耗,为了避免这种无意义的消耗我们可以把输出的内容存在一个名为输出缓冲区的地方,当我们需要输出时,一次性全部输出,节省开销。所以我们使用printf()函数时,一般都会写成printf("xxxx \n") ,让数据立刻从输出缓冲区刷新到屏幕。或者使用fflush(stdout)进行强制刷新。 其中,stdout就是标准输出。
你可以这样想,在我们编写的程序中会经常用到printf()函数进行数据的输出,而printf()函数要想把内容输出,就要在该函数内部调用有关输出的系统调用,就想你去商店买东西,早上去买包零食,中午去买包泡面,晚上又去买包饼干。那么这一来二去在路上浪费了不少时间,那么何不一次性全买回来呢。同样的,在函数中调用系统调用时,从我们的用户状态切换到内核态也要产生消耗,为了避免这种无意义的消耗我们可以把输出的内容存在一个名为输出缓冲区的地方,当我们需要输出时,一次性全部输出,节省开销。所以我们使用printf()函数时,一般都会写成printf("xxxx \n") ,让数据立刻从输出缓冲区刷新到屏幕。或者使用fflush(stdout)进行强制刷新。 其中,stdout就是标准输出。
当然会有啊。
34,590
社区成员
254,589
社区内容
加载中
试试用AI创作助手写篇文章吧