• <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開(kāi)始的緩沖區(qū)中。
                  如果cnt為0,read()返回0并且buf中沒(méi)有結(jié)果;如果cnt大于SSIZE_MAX,結(jié)果為定義。

            返回值:
                  如果成功,返回讀取的字節(jié)數(shù)`ret'(非負(fù),0代表遇到了文件結(jié)束符),并且文件位置前移ret字節(jié)。如果ret<cnt并不代表出錯(cuò);例如,這種情況可能是由于當(dāng)前只有ret字節(jié)可用(可能是因?yàn)橐呀?jīng)接近文件結(jié)束,或者因?yàn)槲覀冋龔墓艿阑蚪K端中讀取),也可能由于read()被信號(hào)中斷。如果出錯(cuò),返回-1。在這種情況下,文件位置是否改變是未定義行為。

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

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

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

            參考:
                  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 閱讀(1409) 評(píng)論(1)  編輯 收藏 引用 所屬分類: unix

            Feedback

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

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


            日本强好片久久久久久AAA| 久久天天躁狠狠躁夜夜2020老熟妇 | 国产精品美女久久久久| 久久午夜伦鲁片免费无码| 国产精品9999久久久久| 狠狠人妻久久久久久综合| 内射无码专区久久亚洲| 亚洲精品乱码久久久久久久久久久久| 亚洲va国产va天堂va久久| 久久99精品综合国产首页| 亚洲精品成人久久久| 久久免费国产精品一区二区| 亚洲日本久久久午夜精品| 久久99精品久久久久久hb无码| 久久国产精品一区| 国产精品免费看久久久| 久久精品综合网| 国产精品永久久久久久久久久 | 亚洲欧美日韩精品久久| 久久婷婷午色综合夜啪| 国产成人精品久久亚洲高清不卡 | 久久久久久久免费视频| 久久久久人妻精品一区三寸蜜桃| 久久夜色精品国产噜噜亚洲AV| 久久人人爽人人爽AV片| 久久中文字幕一区二区| 国内精品伊人久久久久av一坑| 久久久久久久波多野结衣高潮 | 亚洲国产香蕉人人爽成AV片久久| 久久国产精品久久| 99久久精品影院老鸭窝| 亚洲va久久久噜噜噜久久| 久久久久久久精品成人热色戒| 中文精品99久久国产| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久最近最新中文字幕大全| 久久久无码一区二区三区 | 久久久久婷婷| 久久嫩草影院免费看夜色| 久久中文字幕无码专区| 久久这里只有精品视频99|