标签: clib

open()、_open() 和 fopen() 在 MSVC 编译器方面的区别?

我发现这三个函数都与打开文件有关。

打开

此 POSIX 函数已弃用。请改用符合 ISO C++ 标准的 _open。

_打开

打开一个文件。这些函数已被弃用,因为有更安全的版本可用;参见 _sopen_s、_wsopen_s。

打开

打开一个文件。这些函数有更安全的版本,可以执行额外的参数验证并返回错误代码;参见 fopen_s、_wfopen_s。

那么,为什么是他们三个呢?什么时候用哪个?我认为 POSIX 很好,但为什么 MSDN 说 POSIX 版本open已弃用?是否有与前导下划线相关的命名约定,以便我可以根据第一眼的外观选择正确的函数?

当我查看ACPICA 代码时,我看到下面的代码: 似乎该_XXX版本可以禁用某些MS 语言扩展,这些扩展到底是什么?

/*
 * Map low I/O functions for MS. This allows us to disable MS language
 * extensions for maximum portability.
 */
#define open            _open
#define read            _read
#define write           _write
#define close           _close
#define stat            _stat
#define fstat           _fstat
#define …
Run Code Online (Sandbox Code Playgroud)

posix visual-c++ clib

6
推荐指数
1
解决办法
5939
查看次数

标签 统计

clib ×1

posix ×1

visual-c++ ×1