C,在open()等函数中使用F命令

时间:2014-02-16 23:57:27

标签: c

这是一个愚蠢的问题,但看看它是否可能。

使用f命令,例如,“w”将写入文件,如果不存在则创建新文件。

O命令有点复杂,我的研究表明:O_WRONLY | O_TRUNC | O_CREAT

o命令似乎有点过于难以记住与f命令相反。它是“良好的编码”,可以在开放函数中使用W作为标志

1 个答案:

答案 0 :(得分:1)

fopen函数在ISO C标准(例如C99 7.19.5.3)中定义。它在C运行时库中实现。因此,所有兼容的C实现,在所有平台上都必须实现它。

open函数在POSIX中定义。它特定于类似unix的平台。

当您在类似于unix的POSIX兼容平台上调用fopen时,运行时库会检查您提供的参数,并将它们转换为POSIX open函数的相应参数。

如果您在另一个系统(如Windows)上调用fopen,则运行时库将调用特定于Windows的函数来打开该文件 - 可能是OpenFile

你不能直接向POSIX open提供fopen参数,或者直接提供给Windows OpenFile。这些功能对它们并不了解。

关于"良好的编程"以及要使用的这些层中的哪一层:通常,除非出于某种原因需要特别需要,否则应避免直接调用OS系统调用(例如POSIX或Windows)。原因是如果你不这样做,你的程序将更加便携。可以为任何具有兼容C编译器的平台编译它。

另一方面,如果您需要C运行时库中没有的某些功能或选项,那么您应该使用OS系统调用。