使用read()逐字节读取文件

Cha*_*amé 2 c file-io

我试图围绕read()系统调用.

如何使用字节逐字节读取实际文件read()

第一个参数是类型的文件描述符int.
如何将文件传递给read()呼叫?

Jon*_*ler 6

你打开文件open(); 您通过返回的文件描述符open()read().

int fd;
if ((fd = open(filename, O_RDWR)) >= 0)
{
    char c;
    while (read(fd, &c, 1) == 1)
        putchar(c);
}
Run Code Online (Sandbox Code Playgroud)

有迹象表明,返回文件描述符其他功能:creat(),pipe(),socket(),accept(),等.

请注意,虽然这可以工作,但效率很低,因为它会进行大量的系统调用.通常,您一次读取大量字节,以减少系统调用的数量.标准I/O库(in <stdio.h>)自动处理.如果使用低级别的open(),read(),write(),close()系统调用,您不必担心缓冲等自己.