【发布时间】:2020-10-03 00:52:11
【问题描述】:
在《C Programming: A Modern Approach》一书的第 22 章中,作者对文件位置的概念进行了简短的介绍。提供了以下描述:
每个流都有一个关联的文件位置。打开文件时,文件位置设置在文件的开头。 (但是,如果文件以“追加”模式打开,则初始文件位置可能在文件的开头或结尾,具体取决于实现。)然后,当执行读取或写入操作时,文件位置会前进自动,允许我们以顺序的方式在文件中移动。
在这一段之后,作者深入探讨了几个与“文件位置”概念相关的<stdio.h>函数(例如fseek、ftell等)。
我最近发了一个帖子 (What is the difference between a pointer to a buffer and a pointer to a file?),所提供的答案/反馈让我对流,FILE 和 FILE * 的实际含义有了一个不错的初学者理解。在这篇文章中还向我揭示了缓冲区可以自动(“默认”在调用fopen 时创建)这一事实。
所以我的问题实际上是一个请求:有人可以更详细地向我提供文件位置到底是什么?它是指向与fopen 相关的缓冲区的指针吗?如果它不是 指向缓冲区 的指针,它是否以某种方式暴露了指向缓冲区指针的某种对应关系?大概文件位置存储在FILE 中。等等等等。
非常感谢任何见解!干杯~
【问题讨论】: