我正在努力思考 read()
系统调用。
如何使用read()
逐字节读取实际文件?
第一个参数是int
类型的文件描述符。
如何将文件传递给 read()
调用?
最佳答案
您使用 open()
打开文件;你传递了 open()
返回的文件描述符至 read()
.
int fd;
if ((fd = open(filename, O_RDWR)) >= 0)
{
char c;
while (read(fd, &c, 1) == 1)
putchar(c);
}
还有其他返回文件描述符的函数: creat()
, pipe()
, socket()
, accept()
等
请注意,虽然这可行,但效率低下,因为它会进行大量系统调用。通常,您一次读取大量字节以减少系统调用的次数。标准 I/O 库(在 <stdio.h>
中)会自动处理这个问题。如果你使用低级 open()
, read()
, write()
, close()
系统调用,您必须自己担心缓冲等问题。
关于c - 使用 read() 逐字节读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28271209/