Provided by: manpages-zh_1.5.2-1_all bug

NAME

       write -在一個檔案描述符上執行寫操作

概述
       #include <unistd.h>

       ssize_t write(int fd, const void *buf, size_t count);

描述
       write    向檔案描述符    fd    所引用的檔案中寫入   從   buf   開始的緩沖區中   count   字節的數據.
       POSIX規定,當使用了write()之後再使用   read(),那麼讀取到的應該是更新後的數據.     但請注意並不是所有的檔案系統都是
       POSIX相容的.

返回值
       成功時返回所寫入的字節數(若為零則表示沒有寫入數據).                        錯誤時返回-1,並置errno為相應值.
       若count為零,對於普通檔案無任何影響,但對特殊檔案 將產生不可預料的後果.

錯誤代碼
       EBADF  fd 不是一個合法的檔案描述符或者沒有以寫方式打開.

       EINVAL fd 所指向的對象不可寫.

       EFAULT buf 不在使用者可訪問地址空間內.

       EPIPE  fd       連接到一個管道,或者套接字的讀方向一端已關閉.此時寫進程        將接收到        SIGPIPE
              信號;如果此信號被捕獲,阻塞或忽略,那麼將返回錯誤 EPIPE.

       EAGAIN 讀操作阻塞,但使用 O_NONBLOCK 指定了非阻塞式輸入輸出.

       EINTR  在寫數據以前調用被信號中斷.

       ENOSPC fd 指向的檔案所在的設備無可用空間.

       EIO    當編輯一個節點時發生了底層輸入輸出錯誤.

       可能發生了其他錯誤,取決於 fd 所連接的對象.

相容於
       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

《中國linux論壇man手冊頁翻譯計劃》:
       http://cmpp.linuxforum.net