【发布时间】:2017-06-13 15:05:14
【问题描述】:
我编写了以下代码来模拟回调。但这被卡住了,甚至没有打印“内部主要”。我在我的 unix 机器和在线编译器上试过这个,但行为相同。我错过了什么吗?
#include <stdio.h>
#include <unistd.h>
void sleep_50sec()
{
printf("inside sleep_50sec");
sleep(50);
}
int main()
{
int i;
printf("inside main");
sleep(1);
for( i =0; i < 100;i++)
{ printf("Loop %d",i);
sleep_50sec();
}
return 0;
}
输出
root@xyz> ./a.out
【问题讨论】:
-
执行完成还是挂起?
-
printf在看到换行符\n时刷新为stdout。将其附加到您的printf调用中,您应该会看到一些打印输出。 -
@yano 假设你没有继承
stdout设置为_IOFBF。