【发布时间】:2011-06-30 08:10:11
【问题描述】:
通过测试我没有发现任何差异。
决定这个的关键是什么?
【问题讨论】:
通过测试我没有发现任何差异。
决定这个的关键是什么?
【问题讨论】:
fopen 是任何 C 环境都应提供的可移植接口。此外,它的结果是一个缓冲流 (FILE*),可以与方便的 stdio 函数一起使用。
open 是一个 Unix/POSIX 特定的接口。它的结果是一个裸的(无缓冲的)文件描述符,它必须与低级系统调用一起使用。它确实允许对 I/O 进行更细粒度的控制(请参阅 POSIX standard 中的标志列表),因此有时您可能想要 open 一个文件,然后可能需要 fdopen 它来获取 stdio 和缓冲。
【讨论】:
fopen,除非你有很好的理由不这样做。 open 更难使用,也不是很便携。
open 接受可变数量的参数,如果您传递错误数量或错误标志,则难以调试。