我需要指定程序在N秒後結束。我認爲這將意味着封閉整個程序的某種做while循環,但我無法弄清楚具體細節。這將如何完成?確保程序僅運行N秒
對於一個非常簡單的例子,可以說我希望它至少3秒內運行線
printf("Hello world\n");
N秒
我需要指定程序在N秒後結束。我認爲這將意味着封閉整個程序的某種做while循環,但我無法弄清楚具體細節。這將如何完成?確保程序僅運行N秒
對於一個非常簡單的例子,可以說我希望它至少3秒內運行線
printf("Hello world\n");
N秒
這愚蠢的代碼打印Hello World
#include <stdio.h>
#include <time.h>
int main()
{
time_t start_timer = time(NULL);
while(1)
{
printf("Hello world\n");
if (time(NULL)-start_timer > 3)
{
break;
}
}
return 0;
}
當然,如果程序不是僅僅打印一條消息,而是執行一個大的計算/輸入/輸出操作/網絡操作,它可能需要超過3秒。
在這種情況下,根據相關評論的建議,創建一個「看」線程並檢查計算並行時間流逝會更好(但更復雜,因此必須有必要)(使用cpu - 通過時間等待機制避免吃100%的CPU),如果花費太長時間,則會導致計算線程死機。
(注意,如果一個大的I/O操作過程中,該線程殺可能需要一段時間,因爲線程不活躍在這個時候)
這將取決於該代碼。你能告訴我們你的嗎? –
爲什麼代碼本身很重要?這可能與打印「Hello World」N秒一樣簡單。 – Bob
如果程序正在讀取2TB文件,則不同。 –