睡眠功能在linux中的c疯狂bug

Joh*_*nyF 0 c linux

我有这个简单的代码"在int中的printinterval

sleep(printinterval/3);
displayPrint();  //// just some printing func
sleep(printinterval/3);
displayPrint(); 
sleep(printinterval-2*(int)(printinterval/3));
displayPrint(); 
Run Code Online (Sandbox Code Playgroud)

问题是它不能以正确的方式做延迟,跳过1次睡眠

sleep(printinterval/3);
printf("\n");
displayPrint();  //// just some printing func
printf("\n");    
sleep(printinterval/3);
printf("\n");    
displayPrint();
printf("\n"); 
sleep(printinterval-2*(int)(printinterval/3));
printf("\n");
displayPrint(); 
Run Code Online (Sandbox Code Playgroud)

奇迹般有效

有任何想法吗?谢谢 :)

编辑:thx的帮助发现这种方式来解决它

fflush(stdout); // Will now print everything in the stdout buffer
Run Code Online (Sandbox Code Playgroud)

thx