open()函数的_sopen_s()等价物是什么?

use*_*806 4 c c++ windows

Microsoft已弃用_open而支持_sopen_s.推荐的等价参数是什么?

use*_*806 8

那么现在我可以发布我格式很好的答案,所以这里是:

对于

int fd = _open(name,oflags);
Run Code Online (Sandbox Code Playgroud)

用...来代替

int fd;
errno_t errno = _sopen_s(&fd,name,oflags,_SH_DENYNO,0);
Run Code Online (Sandbox Code Playgroud)

我发布此问答的原因是它提供了微软未提供的一些重要的非显而易见的信息.我同意_sopen_s是_open的不良替代品.我只研究过这个主题,因为我正在修复由_sopen_s提供的错误参数引起的错误._sopen_s只是在代码中去除编译器警告; 最初的_open电话很好.