温馨提示×

c语言read函数怎么使用

小亿
348
2023-11-08 11:00:51
栏目: 编程语言

在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函数或者设置文件描述符非阻塞。

0