我編寫了下面一段代碼來模擬回調。但是,這卡住了,甚至沒有打印「主要內部」。我在我的unix機器上以及在線編譯器上嘗試了這一點,但行爲相同。我錯過了什麼?簡單的帶有睡眠的c代碼在執行後不會輸出
#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;
}
輸出
[email protected]> ./a.out
是否執行完畢或者它掛起:它可以通過
'\n'
字符格式字符串內或由fflush
命令來完成? –'printf'在看到換行符'\ n'時被刷新到'stdout'。追加到你的'printf'調用,你應該看到一些打印輸出。 – yano
@yano假設你沒有繼承設置爲'_IOFBF'的'stdout'。 –