→ Hazukashiine: 通常會出現這個問題是因為 file handle leak 06/14 12:03
→ Hazukashiine: 有「可能」是因為沒有完成 destroy 所以到達 limit 06/14 12:03
→ Hazukashiine: 骯髒的手法是直接 ulimit -n <fd-num> 來加大 limit 06/14 12:05
→ Hazukashiine: 雖然這不能從根本上解決問題,不過畢竟是有效的解決 06/14 12:05
→ Hazukashiine: 不然可以修改 /proc/sys/fs/file-max 06/14 12:06
→ Hazukashiine: 如果有強迫症的話,用 lsof 看一下到底有哪些檔案 06/14 12:07
→ Hazukashiine: 並沒有被關閉,還正在被你的程式讀取 06/14 12:07
→ wind00962: 因這要跑無限個小時,又算加大應該還是會有問題 06/14 12:09
→ Hazukashiine: 那就用 lsof 先確認到底是哪些檔案沒有 pclose 到 06/14 12:10
→ Hazukashiine: 哦~對了,你用 popen 的話好像不能這樣弄 06/14 12:11
→ Hazukashiine: 那就先檢查一下 pclose 的回傳值 06/14 12:12
→ Hazukashiine: The pclose() function returns -1 if wait4(2) 06/14 12:13
→ Hazukashiine: returns an error,or some other error is detected 06/14 12:13
→ Hazukashiine: 還有,你沒有檢查回傳值,怎麼知道是否正常關閉檔案 06/14 12:17
→ wind00962: 感謝,我在試看看 06/14 12:27
→ wind00962: 那關閉回傳值錯誤,我要怎繼續這個程式呢? 06/14 12:29
→ Hazukashiine: 先把 sleep(1) 拿掉試試看吧 06/14 12:31