• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            默然前行

            write whatever i think.

            read/write(1) -- read

            函數(shù)名:
                  read - 從文件描述字中讀

            摘要:

            1 #include <unistd.h>
            2 
            3 ssize_t read(int fd, void* buf, size_t cnt);

            描述:
                  read()試圖從文件描述字fd中讀取cnt字節(jié)到以buf開始的緩沖區(qū)中。
                  如果cnt為0,read()返回0并且buf中沒有結(jié)果;如果cnt大于SSIZE_MAX,結(jié)果為定義。

            返回值:
                  如果成功,返回讀取的字節(jié)數(shù)`ret'(非負,0代表遇到了文件結(jié)束符),并且文件位置前移ret字節(jié)。如果ret<cnt并不代表出錯;例如,這種情況可能是由于當前只有ret字節(jié)可用(可能是因為已經(jīng)接近文件結(jié)束,或者因為我們正從管道或終端中讀取),也可能由于read()被信號中斷。如果出錯,返回-1。在這種情況下,文件位置是否改變是未定義行為。

            錯誤號:
                  EINTR   該調(diào)用在讀完數(shù)據(jù)之前被信號中斷。
                  EAGAIN   用O_NONBLOCK選擇了非阻塞模式I/O,但是當前沒有數(shù)據(jù)可用。
                  EIO      I/O錯誤。例如這種情況可能發(fā)生在當前進程為后臺運行組,試圖從它所控制的tty中讀取,但是該終端為當前無效或者屏蔽了SIGTTIN信號又或者該終端進程為“孤兒進程”(orphan process)。 當從磁盤中讀取數(shù)據(jù)時遇到底層I/O錯誤時,也會發(fā)生這種情況。
                  EISDIR   fd引用了一個目錄。
                  EBADF   fd不是有效文件描述字,或者沒有為讀打開。
                  EINVAL   fd引用了一個不支持讀操作的設(shè)備。
                  EFAULT   buf超出了可訪問地址空間。
                  其他錯誤也會發(fā)生,這取決于fd所連接的設(shè)備。 POSIX允許read調(diào)用在讀取部分數(shù)據(jù)后被信號中斷后,或者返回-1(錯誤號被置為EINTR),或者返回已經(jīng)讀取的字節(jié)數(shù)。

            規(guī)范:
                  SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3

            約束:
                  在NFS文件系統(tǒng)中,讀取小量數(shù)據(jù)只在第一次時更新時間戳,而后續(xù)調(diào)用不會更新。這是由客戶端屬性緩存(client side attribute caching)導(dǎo)致的,因為絕大多數(shù)NFS客戶端讓server維護atime(最后訪問時間),而客戶端read調(diào)用所產(chǎn)生的讀操作沒有造成server端的讀操作從而也不會導(dǎo)致server更新atime。可以通過禁用客戶端屬性緩存以獲得UNIX語義,但事實證明大多數(shù)情況下這會增加server負載并降低性能。

            參考:
                  close(2), fcntl(2), ioctl(2), lseek(2), readdir(2), readlink(2), select(2), write(2), fread(3), readv(3)

            posted on 2008-09-12 10:01 Zech 閱讀(1414) 評論(1)  編輯 收藏 引用 所屬分類: unix

            Feedback

            # re: read/write(1) -- read[未登錄] 2008-09-12 13:09 raof01

            為你的努力鼓掌。
            但是……我覺得這些沒有必要翻譯過來。一個合格的程序員,一定要feel comfortable with English。全世界都是如此  回復(fù)  更多評論   


            精品久久久无码中文字幕| 看全色黄大色大片免费久久久| 久久综合久久自在自线精品自| 亚洲中文字幕无码久久2017| 国内精品九九久久久精品| 青青草国产成人久久91网| 狠狠色丁香久久婷婷综合图片| 亚洲国产精品无码久久SM| 亚洲国产精品婷婷久久| 色婷婷久久综合中文久久蜜桃av| 嫩草影院久久国产精品| 日产精品99久久久久久| 久久国产视屏| 99久久精品无码一区二区毛片 | 久久精品男人影院| 久久综合亚洲色HEZYO社区| 四虎国产永久免费久久| 久久成人国产精品| 久久久国产99久久国产一| 国产免费久久精品丫丫| 久久久久亚洲AV成人片| 国产成人精品综合久久久| 国内精品久久久久久久coent| 国产精品久久久久久福利69堂| 久久亚洲精品国产精品婷婷 | 久久综合亚洲色一区二区三区| 99久久国产热无码精品免费久久久久| 无码人妻久久一区二区三区| 久久强奷乱码老熟女网站| 久久精品国产色蜜蜜麻豆| 国产99久久久国产精免费| 国内精品久久久久久麻豆| 久久狠狠色狠狠色综合| 久久婷婷综合中文字幕| 99久久免费只有精品国产| 久久国产精品偷99| 国产精品久久久天天影视香蕉 | 伊人久久大香线蕉综合Av| 一本色道久久88综合日韩精品| 婷婷久久综合九色综合绿巨人| 久久天天躁狠狠躁夜夜2020 |