我的代码的简化版本是:
#include "externalstuff.h"
void main(){
printf("Hello?");
/* make calls to externalstuff
....
*/
}
Run Code Online (Sandbox Code Playgroud)
我没有写externalstuff.h,所以我不确定那里到底发生了什么.
调用externalstuff需要一些时间来执行.我希望"Hello?"会打印,然后我必须等待那些外部调用完成,然后我的程序将结束.但似乎正在发生的事情是,"Hello?"只有在我的节目结束之后才会被打印出来,经过漫长的等待externalstuff.
是否有可能externalstuff.h延迟输出?如果是这样,怎么样?
我在Widnows 7上使用gcc in cygwin.
缓冲会延迟程序的输出.当您调用时printf,输出存储在缓冲区中,直到发生以下三种情况之一:
fflush(stdout)以显式发送缓冲区到控制台,或'\n'字符,输出发送到控制台(而不是将输出发送到文件).如果你不喜欢这种行为,并且不介意性能稍慢,你可以调用
setbuf(stdout, NULL);
Run Code Online (Sandbox Code Playgroud)
禁用缓冲.
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |