2010-06-17 51 views
0

什麼時候可以在FreeBSD 7.2中對文件描述符進行短寫操作?對UNIX文件描述符的短寫操作

我的意思是「write」系統調用返回的字節數少於請求的情況。

我在說ufs文件系統中的普通文件的描述符,我們可以通過調用open()來獲得描述符。

回答

2

寫()可以返回寫入比請求更少的字節:

有一個進程上下文切換或接收到SIGINT,寫()不是原子。 在讀取整個緩衝區之前發生EOF時,write()會返回更少的字節。

如果fd設置爲非阻塞,那麼其他瞬態條件可能會導致write()返回寫入比請求更少的字節 - 這是實現定義的行爲。 一個例子是臨時磁盤滿錯誤,在/ tmp等文件系統上。 NFS文件系統有時播放不好:從close()返回的錯誤可能是檢測NFS掛載文件的write()時發生磁盤已滿錯誤的唯一方法。