文件的权限

rayfuture 2006-04-19 11:33:18
我是新手,初学UNIX和C语言,下边是我程序的一部分代码,可是为什么我建立了一个文件后,我不能用VI改写,我用VI打开只有读权限。
而且此程序也只能写文件一次。

if((filedes = open(argv[1], O_CREAT|O_RDWR|O_APPEND))<0)
err_ret("open error for %s", argv[1]);
else
printf("open for reading OK\n");

n = sizeof(buffer);
if(write(filedes, buffer, n) != n)
printf("write fail\n");
else
printf("write success\n");
close(filedes);
...全文
63 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
rayfuture 2006-04-19
按照一楼的说法试验了一次,还是不行。但是我看到那个新建的文件属性已经是:
-rwxr-xr-x。
比如我建立的文件是test。
那么我用vi打开,修改后用:w或者:x,提示:File exist - use "w!"to overwrite。
我不明白,为什么在这里必须要用强制写入才行,而我用:w!强制改写后,再次查看文件属性并没有变化啊。
  • 打赏
  • 举报
回复
lqh_wh 2006-04-19
估计你的shell中的umask设置的不对
你可以用下面的方法试试
if((filedes = open(argv[1], O_CREAT|O_RDWR|O_APPEND, S_IRWXU | S_IRWXG/*770*/))<0)
  • 打赏
  • 举报
回复
相关推荐
发帖
Linux/Unix社区
加入

2.1w+

社区成员

Linux/Unix社区 应用程序开发区
申请成为版主
帖子事件
创建了帖子
2006-04-19 11:33
社区公告
暂无公告