通过测试我没有发现任何差异。
决定这一点的关键是什么?
答案 0 :(得分:12)
fopen
是任何C环境都应提供的便携式界面。此外,其结果是缓冲流(FILE*
),可以与方便的stdio
函数一起使用。
open
是特定于Unix / POSIX的接口。其结果是一个裸(无缓冲)文件描述符,必须与低级系统调用一起使用。它确实允许对I / O进行更细粒度的控制(请参阅POSIX standard中的标志列表),因此有时您可能希望open
一个文件,然后可能fdopen
它得到stdio
和缓冲。