【发布时间】:2014-02-15 21:34:07
【问题描述】:
我有一个基本程序,旨在复制 bash 的 cp 命令的功能。我正在为 UNIX 和 Windows 开发一个副本。我的 UNIX 版本运行良好,但是,我发现 Windows 不支持 fopen() 的“wx”模式选项,如下行所示:
file2 = fopen(argv[2], "wx");
是否有另一种方法可以在此处镜像 fopen 的 wx 功能模式?
(wx 允许打开具有写入权限的文件,但如果已存在具有相同文件名的文件,则会返回错误——这意味着您不会覆盖现有文件。请参阅here。
注意:尝试在 VS2013 的开发人员命令提示符中运行程序
【问题讨论】:
-
如果
fopen做不到,您可能必须使用带有CREATE_ALWAYS作为dwCreationDisposition参数的本机Win32CreateFile函数。 -
@AndrewMedico
CREATE_NEW. -
file2 = PathFileExists(argv[2]) ? NULL : fopen(argv[2], "w"); -
@BLUEPIXY 竞争条件问题