c - C Streams 系统如何工作?

标签 c libc

C流系统如何工作?

例如代码:

FILE *f;
// opens f...
fputc(f, "x");

将执行不同的操作,具体取决于“f”的打开方式。如果“f”作为文件打开,则会在该文件中写入一个字符。如果“f”作为内存流打开,则将在内存中写入一个字符,并且可能会分配更多内存。

所以我的问题是:fputc 函数如何知道“f”的含义以及如何处理它?<​​/p>

附加问题:它是否完全取决于操作系统,或者是否可以在纯 C 中实现这样的抽象接口(interface)?

最佳答案

open 函数将该信息存储在 f 指向的 FILE 结构中。它是纯 C 语言,但写入文件的低级代码将取决于平台。

关于c - C Streams 系统如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9498872/

相关文章:

linux - uClibc vfork() 导致段错误

c - 如何使用预处理器使 "goto"转到由变量设置的标签?

printf - Clang使用什么标准的C库? glibc,它自己的还是其他的?

c++ - 到无穷远并返回

java - 发射时的致命信号 (KitKat)

检查是否免费工作

c - 如何正确传递这个c字符串数组

c - socket() 函数的内部机制是什么?

c - 基本C程序中的内存分配和未使用字节

c - 寻找支持 UTF8 的格式化函数,如 printf() 等