c - 什么是在 C 中打开文件?

标签 c file

在 C 中,当我们打开一个文件时会发生什么?据我所知,当我们打开文件时,文件的内容并没有加载到内存中。它只是设置文件描述符?那么这个文件描述符是什么?如果文件的内容未加载到内存中,那么如何打开文件?

最佳答案

通常,如果您使用 fopen 或(在 POSIX 系统上)open 打开文件,该函数如果成功,将“打开文件”-它只是为您提供一个值(FILE *int)以供将来调用读取函数时使用。

在后台,操作系统可能读取部分或全部文件,也可能不读取。你必须调用一些函数来请求读取数据,如果在你调用 fread/fgets/read< 时它还没有完成/etc... 然后它会在那个时候。

“文件描述符”通常是指 POSIX 系统中 open 返回的整数。它用于标识打开的文件。如果您得到一个值 3,操作系统会在某处跟踪 3 指的是 /home/user/dir/file.txt , 管他呢。这是一个简短的小值,用于指示操作系统要从哪个文件中读取。当您调用 open 并打开 foo.txt 时,操作系统会说,“好的,打开文件,从这里开始调用它 3 ".

关于c - 什么是在 C 中打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537022/

相关文章:

python - 将异常保存到python中的文件

java - 我的文件输出被复制。每个新的 println 都包含之前的所有内容。 (包含代码)

c - 追加到 C 文件的末尾

c - fork 后 child 创建的文件是否也与 parent 共享?

c - 为什么读取 '+' 和 '-' 在 Linux 中不起作用?

打开使用 re.search 刚刚找到的文件时,Python 不返回此类文件或目录

php从同一浏览器和同一php脚本同时下载文件

android - 遍历Android中的指定目录

c - 如何创建一个可以安全并发执行的临时文件名?

C fscanf 读取同一行两次?