当我尝试覆盖现有文件时,出现“权限被拒绝”错误。 我注意到创建的文件具有“只读”属性集。当我手动取消设置时,我可以覆盖文件。是否有一些我可以传递给open()的标志,当我创建一个文件时它会自动取消设置?使用MinGW如何创建没有只读文件属性的文件?
下面是一个简单的例子,说明了这个问题。第一次运行,但第二次产生“权限被拒绝”错误。
感谢, 扎克(新来的MingW/Windows 7中)
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <errno.h>
int main(int argc, char ** argv) {
int fid;
double data = 12.0;
if ((fid = open("junk.data", O_WRONLY | O_CREAT | O_BINARY)) == -1) {
printf("ERROR opening.\n\terror is:%s\n", strerror(errno));
return 1;
}
write(fid, &data, sizeof(double));
close(fid);
return 0;
}
我很确定我已经尝试过这个(作为第三个参数),但是我想我一定是用旧版本的可执行文件进行了测试。它现在似乎在工作。 -谢谢 – Zach 2011-04-01 18:22:22