read()
函数用于从文件描述符(通常是套接字、文件等)读取数据。
#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);
-
fd
:- 是文件描述符,可以是套接字、文件等。
-
buf
:- 是一个指向要读取数据的缓冲区的指针。
-
count
:- 是要读取的字节数。
-
返回值:
- 如果成功,返回读取的字节数(可能为 0,表示已经读到文件末尾)。
- 如果出错,返回 -1,并设置
errno
表示错误原因。
示例用法:
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>int main() {int fd = open("example.txt", O_RDONLY);if (fd == -1) {perror("open");exit(EXIT_FAILURE);}char buffer[1024];ssize_t bytesRead = read(fd, buffer, sizeof(buffer));if (bytesRead == -1) {perror("read");close(fd);exit(EXIT_FAILURE);}printf("Read %zd bytes: %s\n", bytesRead, buffer);close(fd);return 0;
}
在上述示例中,read()
从文件中读取数据,并将其存储在 buffer
缓冲区中。读取的字节数由 bytesRead
返回。请注意,read()
函数在读到文件末尾时返回 0。