【发布时间】:2011-04-01 16:12:34
【问题描述】:
当我尝试覆盖现有文件时,我收到“权限被拒绝”错误。 我注意到创建的文件设置了“只读”属性。当我手动取消设置时,我可以覆盖文件。是否有一些我可以传递给 open() 的标志,它会在我创建文件时自动取消设置?
下面是一个简单的例子来说明这个问题。第一次运行有效,但第二次产生“权限被拒绝”错误。
谢谢, Zach(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;
}
【问题讨论】: