阅读量:0
在C语言中,read函数用于从文件描述符中读取数据。它的原型如下:
#include <unistd.h> ssize_t read(int fd, void *buf, size_t count);
参数说明:
- fd:表示文件描述符,可以是标准输入(0)、标准输出(1)、标准错误(2),也可以是由open或socket函数返回的文件描述符。
- buf:指向接收数据的缓冲区。
- count:要读取的字节数。
返回值说明:
- 返回-1表示失败,读取错误。
- 返回0表示文件已经读取到末尾,没有更多数据可读。
- 返回大于0的值表示实际读取到的字节数。
使用方法如下:
#include <stdio.h> #include <unistd.h> int main() { int fd; // 文件描述符 char buf[1024]; // 缓冲区 ssize_t numRead; // 读取到的字节数 // 打开文件(如果是读取文件数据) // fd = open("file.txt", O_RDONLY); // 从标准输入读取数据 fd = 0; // 读取数据 numRead = read(fd, buf, sizeof(buf)); // 判断读取结果 if (numRead == -1) { // 读取失败 perror("read"); } else if (numRead == 0) { // 文件已经读取到末尾 printf("End of file\n"); } else { // 读取成功,输出读取到的数据 printf("Read %ld bytes: %s\n", numRead, buf); } // 关闭文件(如果是读取文件数据) // close(fd); return 0; }
注意:read函数是一个阻塞函数,即程序会一直等待直到读取到数据或者发生错误。如果需要设置读取超时时间,可以使用select函数或者设置文件描述符非阻塞。