文档库

最新最全的文档下载
当前位置:文档库 > read和write用法

read和write用法

read/write read 函数从打开的设备或文件中读取数据。 #include
ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1 并设置 errno,如果在调 read 之前已到达文件末尾,则这次 read 返回 0
参数 count 是请求读取的字节数,读上来的数据保存在缓冲区 buf 中,同时文件 的当前读写位置向后移。 注意这个读写位置和使用 C 标准 I/O 库时的读写位置有 可能不同, 这个读写位置是记在内核中的, 而使用 C 标准 I/O 库时的读写位置是 用户空间 I/O 缓冲区中的位置。比如用 fgetc 读一个字节,fgetc 有可能从内核 中预读 1024 个字节到 I/O 缓冲区中,再返回第一个字节,这时该文件在内核中 记录的读写位置是 1024,而在 FILE 结构体中记录的读写位置是 1。注意返回值 类型是 ssize_t,表示有符号的 size_t,这样既可以返回正的字节数、0(表示 到达文件末尾)也可以返回负值-1(表示出错)。read 函数返回时,返回值说 明了 buf 中前多少个字节是刚读上来的。有些情况下,实际读到的字节数(返回 值)会小于请求读的字节数 count,例如: 读常规文件时,在读到 count 个字节之前已到达文件末尾。例如, 距文件末尾还有 30 个字节而请求读 100 个字节, read 返回 30, 则 下次 read 将返回 0。 • 从终端设备读,通常以行为单位,读到换行符就返回了。 • 从网络读,根据不同的传输层协议和内核缓存机制,返回值可能小 于请求的字节数,后面 socket 编程部分会详细讲解。 •
write 函数向打开的设备或文件中写数据。 #include
ssize_t write(int fd, const void *buf, size_t count); 返回值:成功返回写入的字节数,出错返回-1 并设置 errno

免费下载Word文档免费下载: read和write用法

(共8页)