2010-06-13 51 views
0

我有一個命令例如LS-L> file.txt的 當有我的驅動器上沒有足夠的空間,上面的命令只是攤位等待事情發生。有人知道我可以編寫的代碼,使我能夠顯示有關驅動器空間不足的消息嗎?例如。我可以使用IPC還是您有其他想法?提前致謝。擊:重定向時,暫停

回答

0

您可以使用df命令確定驅動器上的可用空間量,例如,如果可用空間少於5M,則不要開始處理。

或者你可以從你的內心程序檢查可用空間量,並寫警告消息到STDERR。通過另一個計劃,將攔截的寫入錯誤(例如ENOSPC),打印診斷

+0

不幸的是,該命令將始終運行。我將不得不迎合阻塞問題。你的意思是說,我將不得不編寫某種使用df計算可用空間的循環,並且當它超出某個限制時,我會顯示一條消息?但是沒有一種更有效的方法來驗證過程是否停止而不是循環。 – user365828 2010-06-13 19:06:07

0

管道命令的輸出和失敗,如果沒有別的可以做。

這個程序可以簡單到cat

foobar | cat > file.txt 

cat會報告錯誤和死亡,foobar會收到SIGPIPE默認動作如去死。

+0

你能否提供一些更多的信息? – user365828 2010-06-13 19:11:08

+0

當應用程序磁盤空間不足時,所需的行爲是什麼?有些診斷失敗,而不是無限期地等待,繼續寫入循環緩衝區,還有其他的東西? – rkhayrov 2010-06-13 19:22:51

+0

當應用程序充滿了盤也沒有必要無限期地等待更多的空間可用,只是通過顯示警告「磁盤空間不足」,並從那裏停止或退出的代碼。 – user365828 2010-06-14 15:06:00