阅读量:0
在C语言中,read()
函数用于从文件描述符中读取数据。它的原型如下:
#include <unistd.h> ssize_t read(int fd, void *buf, size_t count);
参数解释:
fd
:要读取的文件描述符,可以是标准输入(0)、标准输出(1)或者标准错误(2),或者是通过open()
函数打开的文件描述符。buf
:用于接收读取数据的缓冲区的指针。count
:要读取的字节数。
返回值解释:
- 如果成功读取数据,则返回实际读取的字节数。
- 如果已到达文件末尾,则返回0。
- 如果发生错误,则返回-1,并设置
errno
变量以表示具体错误原因。
使用示例:
#include <unistd.h> #include <fcntl.h> #include <stdio.h> int main() { int fd = open("file.txt", O_RDONLY); // 打开文件 if (fd == -1) { perror("open"); return 1; } char buf[1024]; ssize_t bytesRead = read(fd, buf, sizeof(buf)); // 从文件中读取数据 if (bytesRead == -1) { perror("read"); return 1; } printf("Read %zd bytes: %s\n", bytesRead, buf); close(fd); // 关闭文件 return 0; }
上述示例中,首先使用open()
函数打开了一个文件,并获得了一个文件描述符fd
。然后使用read()
函数从文件中读取数据,将读取的数据存储在缓冲区buf
中,最多读取sizeof(buf)
字节。最后,通过printf()
函数打印读取的字节数和数据内容。最后,使用close()
函数关闭了文件描述符。