【发布时间】:2022-01-16 10:53:04
【问题描述】:
我想知道打开函数打开文件的地址:
int fd = open("file" , O_RONLY);
现在我们有了这个打开文件的 fd,如果我们需要从中读取,我们只需输入:
read(fd, buffer, size);
示例:
file : | H | E | L | L | O | | W | O | R | L | D |
如果我们从该文件中读取 3 个字符:
int fd = open("file" , O_RONLY);read(fd, buffer, 3);
光标现在在这里:| H | E | {L} |大号 | ○ | | W | ○ |右 |大号 | D |
问题:那么,我怎样才能得到这个{L} char 的地址,或者第一个char 的地址{H}?我想知道这个打开文件的地址而不使用“FILE F = fopen”*
【问题讨论】:
-
“地址”是什么意思?文件读取偏移量?如果是这样,请查看
lseek。 -
一个文件没有地址,所以不太清楚你的意思。
-
我认为您正在对文件的工作方式做出假设 - 而您不应该这样做。这就是文件操作函数的用途。无论您尝试通过该指针做什么,您都需要找到一种通过库中定义的函数来完成它的方法。
-
如果您从文件中读取了 3 个字节,则文件指针现在将位于 second
L,而不是第一个。 -
某些文件数据可能根本不在内存中,除非您调用库函数来访问它。所以没有这些字符的地址。
标签: c file file-descriptor