HI, 我正在地址阅读一些C文本:https://cs.senecac.on.ca/~btp100/pages/content/files_p.html 在文中,他们提到文件数据结构为图像:
我不明白文件数据结构中包含的内容以及它如何连接到物理文件? 有人可以详细说明吗? 感谢。
答案 0 :(得分:1)
如评论中所述,您不需要访问FILE*
指向的对象的详细信息 - 使用fread()
,fgetc()
等。
如果你想知道它包含什么,那么定义通常是在stdio.h中,但它不会提供很多信息!
它的作用是为“原始文件”提供一个缓冲区,由文件描述符(通常只是一个int)表示,并与open()
,read()
等函数一起使用。内部字段用于管理缓冲区,文件中的位置,错误标记等。
如果使用fgetc()
从文件中读取一个字符,该库实际上将从基础文件描述符加载一个数据块,存储它并返回一个字符。下次使用fgetc()
时,它会从其商店中获取下一个字符,而不必再次访问实际文件。一旦返回了商店中的所有字符,就会访问底层文件以获取下一个块。如果您想逐个字符地阅读,这会更有效。同样适用于使用fputc()
进行书写。
值得注意的是,文件描述符实际上可能不是磁盘上的文件,它可能是串口,管道或其他东西。