3
我試圖一次寫入終端一行,但它只是打印整個事情沒有睡覺。它適用於我使用睡眠(1)。我只是不理解nanosleep是如何工作的?爲什麼C nanosleep()不在這裏睡覺?
void
display_all(int fdin, int fdout)
{
struct timespec tm1,tm2;
tm1.tv_sec = 0;
tm1.tv_nsec = 1000000000L;
while (display_line(fdin, fdout) == 80)
{
nanosleep(&tm1,&tm2);
}
}
display_line正在使用函數寫入來寫入STDOUT。
讀[手冊頁](https://linux.die.net/ man/2/nanosleep)總是有幫助:「毫微秒字段的值必須在0到999999999之間」。 – kaylum
不要使用nanosleeps進行大睡:準確但會吃很多CPU,因爲它使用校準的活動CPU循環。不適合長時間延遲。 –
哇。這對我的感謝。是的@ Jean-FrançoisFabre我只是測試如何使用它,因爲我必須做一個速度修改器來提高它的讀取速度或降低速度。 – WizKiz