我有興趣通過分配大量文件描述符並導致文件描述符失敗而導致系統關閉(例如15分鐘)。 (不要擔心,我不會試圖破解任何東西,這是爲了測試我正在寫的服務......以查看它在其他程序中行爲不正常的行爲。)有什麼最佳實踐?我應該繼續說fopen()在一個無限循環? 15分鐘後,我可以殺死這個過程?有沒有人有這方面的經驗?分配大量文件描述符
更新:我正在運行Linux,我正在編寫的程序將具有超級用戶權限。
感謝, 〜瑜伽士
我有興趣通過分配大量文件描述符並導致文件描述符失敗而導致系統關閉(例如15分鐘)。 (不要擔心,我不會試圖破解任何東西,這是爲了測試我正在寫的服務......以查看它在其他程序中行爲不正常的行爲。)有什麼最佳實踐?我應該繼續說fopen()在一個無限循環? 15分鐘後,我可以殺死這個過程?有沒有人有這方面的經驗?分配大量文件描述符
更新:我正在運行Linux,我正在編寫的程序將具有超級用戶權限。
感謝, 〜瑜伽士
我不得不在正常使用該發生一次。我相信你在Linux中運行inode。我不知道一個更快的方式,只是打開文件。小心點,我們鎖定了我們的系統。一段時間之前,我不記得試圖打開一個文件是什麼,但事情通常認爲他們可以得到一個文件句柄,在他們不能的情況下,他們的表現不如他們應該的。 〜本
我的2美分:
1.編寫一個程序,創建大量的文件描述符。您可以通過以下方法之一實現它:
(一)開幕很多不同的文件在你的代碼
(b)打開了很多插座描述符的
(三)創建了很多線程
的2.現在,繼續使用shell腳本或類似的東西來產生在步驟1中創建的程序的多個實例(即創建多個進程)。
注: 在Linux和大多數其他操作系統,對文件描述符的數量每個進程(在Linux默認的限制是1024我想你可以使用檢查的ulimit -a )。所以,當你這樣做時,你的過程就會失敗。我真的不太確定,只是通過增加文件描述符的使用數量,可以使系統停機。
我在想如果他們試圖寫或讀任何東西,系統將變得可用於其他進程。 –
您可以使用mkstemp來獲取臨時文件的文件描述符。
您沒有指定您正在討論的操作系統,但可能打開大量文件描述符只會導致打開它們的進程出現「打開的文件過多」的錯誤,而不是「自帶系統關閉「。 –
是不是。每個進程打開文件描述符的基礎? – tuxuday