在C语言中,read()
函数用于从文件描述符中读取数据。它的原型如下:
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
参数解释:
fd
:要读取的文件描述符,可以是标准输入(0)、标准输出(1)或者标准错误(2),或者是通过open()
函数打开的文件描述符。buf
:用于接收读取数据的缓冲区的指针。count
:要读取的字节数。返回值解释:
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()
函数关闭了文件描述符。