阅读量:0
在 Linux 中,read()
是一个系统调用,用于从文件描述符(file descriptor)中读取数据
#include <unistd.h> ssize_t read(int fd, void *buf, size_t count);
参数说明:
fd
:文件描述符,表示要读取的文件或其他输入源。buf
:指向缓冲区的指针,用于存储从文件描述符中读取的数据。count
:要读取的字节数。
返回值:
- 成功时,返回实际读取的字节数(可能小于
count
)。 - 失败时,返回 -1,并设置
errno
变量以指示错误原因。
下面是一个简单的示例,展示了如何使用 read()
函数从标准输入(文件描述符为 0)读取一行文本:
#include<stdio.h> #include <unistd.h> #include<string.h> int main() { char buffer[1024]; ssize_t bytes_read; printf("Enter some text: "); bytes_read = read(0, buffer, sizeof(buffer) - 1); // 减 1 是为了保留空间存放 '\0' if (bytes_read == -1) { perror("Error reading from stdin"); return 1; } buffer[bytes_read] = '\0'; // 添加字符串结束符 printf("You entered: %s", buffer); return 0; }
请注意,这个示例没有处理 read()
返回的字节数小于请求的字节数的情况。在实际应用中,你可能需要根据需求进行相应的处理。