Provided by:
manpages-zh_1.5.1-2_all 
NAME
write -在一蚗仵袨yz符上執行寫操作
z
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
yz
write 向檔案描z符 fd 所引用的檔案中寫入 從 buf 開始的緩沖區中 count
字節的數據. POSIX規定,當使用了write()之後再使用
read(),那麼讀取到的應該是更新後的數據.
但請注意並不是所有的檔案系統都是 POSIX相容的.
^
成幼阞藀^所寫入的字節數(Y為零則表示沒有寫入數據).
錯誤時返回-1,並置errno為相應.
Ycount為零,對於普通檔案無任何影響,但對特殊檔案 將產生不可預料的後果.
~NX
EBADF fd 不是一茼X法的檔案描z符或者沒有以寫方式打開.
EINVAL fd 所指向的對象不可寫.
EFAULT buf 不在使用者可訪問地址空間內.
EPIPE fd 連接到一蚨瑐D,或者套接字的讀方向一端已關閉.此時寫進程
將接收到 SIGPIPE 信號;如果此信號被捕獲,阻塞或忽略,那麼將返回錯誤
EPIPE.
EAGAIN 讀操作阻塞,但使用 O_NONBLOCK 指定了非阻塞式輸入輸出.
EINTR 在寫數據以前調用被信號中斷.
ENOSPC fd 指向的檔案所在的設備無可用空間.
EIO 當編輯一虒`點時發生了底層輸入輸出錯誤.
可能發生了其他錯誤,取決於 fd 所連接的對象.
e於
SVr4, SVID, POSIX, X/OPEN, 4.3BSD. SVr4文件添加了以下錯誤代碼:
EDEADLK, EFBIG, ENOLCK, ENOLNK, ENOSR, ENXIO, EPIPE,或者ERANGE.
對於SVr4有可能在寫入部分數據時發生中斷並返回EINTR.
見
open(2), read(2), fcntl(2), close(2), lseek(2), select(2), ioctl(2),
fsync(2), fwrite(3)
[]
byeyear <love_my_love@263.net >
[]
2002.02.07
mlinuxan:
http://cmpp.linuxforum.net