Хорошо, теперь я могу опубликовать свой красиво отформатированный ответ, вот он:
Для
int fd = _open(name,oflags);
Заменить на
int fd;
errno_t errno = _sopen_s(&fd,name,oflags,_SH_DENYNO,0);
Причина, по которой я написал этоВопрос-ответ заключается в том, что он предоставляет важную неочевидную информацию, которую Microsoft не предоставила.Я согласен, что _sopen_s - плохая замена _open.Я исследовал эту тему только потому, что исправлял ошибку, вызванную неверными аргументами, которые передаются _sopen_s._Sopen_s был только в коде, чтобы избавиться от предупреждений компилятора;исходный _открытый вызов был в порядке.