READ 2
目录
- NAME read
- 概述
.nf
.B #include
.sp .BI - 描述 .B read() 从文件描述符 .I fd 中读取 .I count 字节的数据并放入从 .IR buf 开始的缓冲区中. .PP 如果 .I count 为零,
- 返回值
- 错误代码 .TP .B EINTR 在读取到数据以前调用被信号所中断. .TP .B EAGAIN 使用 .B O_NONBLOCK 标志指定了非阻塞式输入输出,但当前没有数据可读. .TP .B EIO 输入输出错误.可能是正处于后台进程组进程试图读取其 控制终端,但读操作无效,或者被信号SIGTTIN所阻塞, 或者其进程组是孤儿进程组.也可能执行的是读磁盘或者 磁带机这样的底层输入输出错误. .TP .B EISDIR .I fd 指向一个目录. .TP .B EBADF .I fd 不是一个合法的文件描述符,或者不是为读操作而打开. .TP .B EINVAL .I fd 所连接的对象不可读. .TP .B EFAULT .I buf 超出用户可访问的地址空间. .PP 也可能发生其他错误,具体情况和 .IR fd 所连接的对象有关. POSIX 允许 .B read 在读取了一定量的数据后被信号所中断,并返回
- 兼容于 SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3 .SH 限制 在NFS文件系统中,读取小块数据仅更新时间标记,之后的调用 不再读取服务器端的数据.这是因为客户端把数据放在缓存里. 由于大多数情况下不存在NFS服务器向客户端的读操作, 所以NFS客户必须将更新时间标记的操作放在服务器端,而 数据可以放在客户端的缓存里留待以后更新.UNIX也可以禁用 客户端的缓存,但那样的话大多数情况下会导致服务器性能下降. .SH 参见 .BR close (2), .BR fcntl (2), .BR ioctl (2), .BR lseek (2), .BR readdir (2), .BR readlink (2), .BR select (2), .BR write (2), .BR fread (3) .SH
- [中文版最新更新]
- 《中国linux论坛man手册页翻译计划》:
- 跋
READ
NAMEæ¦è¿°
æè¿°
è¿åå¼
é误代ç
å¼å®¹äº
éå¶
åè§
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
è·
NAME
read - 卿件æè¿°ç¬¦ä¸æ§è¡è¯»æä½
æ¦è¿°
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
æè¿°
read() 仿件æè¿°ç¬¦ fd ä¸è¯»å count åèçæ°æ®å¹¶æ¾å¥ä» buf å¼å§çç¼å²åºä¸.
妿 count 为é¶,read()è¿å0,䏿§è¡å¶ä»ä»»ä½æä½. 妿 count 大äºSSIZE_MAX,é£ä¹ç»æå°ä¸å¯é¢æ.
è¿åå¼
æåæ¶è¿å读åå°çåèæ°(为é¶è¡¨ç¤ºè¯»å°æä»¶æè¿°ç¬¦), æ¤è¿åå¼åæä»¶å©ä½å- èæ°éå¶.å½è¿åå¼å°äºæå®çåèæ°æ¶ å¹¶ä¸æå³çé误;è¿å¯è½æ¯å 为å½åå¯è¯»åçå- èæ°å°äºæå®ç åèæ°(æ¯å¦å·²ç»æ¥è¿æä»¶ç»å°¾,æèæ£å¨ä»ç®¡éæèç»ç«¯è¯»åæ° æ®,æè read()被信å·ä¸æ). åçé误æ¶è¿å-1,å¹¶ç½® errno 为ç¸åºå¼.å¨è¿ç§æåµä¸æ æ³å¾ç¥æä»¶åç§»ä½ç½®æ¯å¦æåå.
é误代ç
|
EINTR |
å¨è¯»åå°æ°æ®ä»¥åè°ç¨è¢«ä¿¡å·æä¸æ. | ||
|
EAGAIN |
ä½¿ç¨ O_NONBLOCK æ å¿æå®äºéé»å¡å¼è¾å¥è¾åº,ä½å½åæ²¡ææ°æ®å¯è¯». | ||
|
EIO |
è¾å¥è¾åºé误.å¯è½æ¯æ£å¤äºåå°è¿ç¨ç»è¿ç¨è¯å¾è¯»åå¶ æ§å¶ç»ç«¯,ä½è¯»æä½æ æ,æè被信å·SIGTTINæé»å¡, æèå¶è¿ç¨ç»æ¯å- ¤å¿è¿ç¨ç».ä¹å¯è½æ§è¡çæ¯è¯»ç£çæè ç£å¸¦æºè¿æ ·çåºå±è¾å¥è¾åºé误. | ||
|
EISDIR |
fd æåä¸ä¸ªç®å½. | ||
|
EBADF |
fd 䏿¯ä¸ä¸ªåæ³çæä»¶æè¿°ç¬¦,æè䏿¯ä¸ºè¯»æä½èæå¼. | ||
|
EINVAL |
fd æè¿æ¥ç对象ä¸å¯è¯». | ||
|
EFAULT |
buf è¶åºç¨æ·å¯è®¿é®çå°å空é´. |
ä¹å¯è½åçå¶ä»é误,å·ä½æåµå fd æè¿æ¥ç对象æå³. POSIX å许 read å¨è¯»åäºä¸å®éçæ°æ®åè¢«ä¿¡å·æä¸æ,å¹¶è¿å -1(ä¸ errno 被设置为EINTR),æèè¿å已读åçæ°æ®é.
å¼å®¹äº
SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3
éå¶
å¨NFSæä»¶ç³»ç»ä¸,读åå°åæ°æ®ä»æ´æ°æ¶é´æ è®°,ä¹åçè°ç¨ ä¸å读åæå¡å¨ç«¯çæ°æ®.è¿æ¯å 为客æ·ç«¯ææ°æ®æ¾å¨ç¼åé. ç±äºå¤§å¤æ°æåµä¸ä¸åå¨NFSæå¡å¨å客æ·ç«¯ç读æä½, æä»¥NFS客æ·å¿é¡»å°æ´æ°æ¶é´æ è®°çæä½æ¾å¨æå¡å¨ç«¯,è æ°æ®å¯ä»¥æ¾å¨å®¢æ·ç«¯çç¼åéçå¾ä»¥åæ´æ°.UNIXä¹å¯ä»¥ç¦ç¨ 客æ·ç«¯çç¼å- ,ä½é£æ ·çè¯å¤§å¤æ°æåµä¸ä¼å¯¼è´æå¡å¨æ§è½ä¸é.
åè§
close(2), fcntl(2), ioctl(2), lseek(2), readdir(2), readlink(2), select(2), write(2), fread(3)
[䏿çç»´æ¤äºº]
byeyear <love_my_love@263.net >
[ä¸æçææ°æ´æ°]
2002.02.02
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
http://cmpp.linuxforum.net
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh