【发布时间】:2016-07-06 05:27:03
【问题描述】:
我的代码如下:
#include "unistd.h"
#include <fcntl.h>
#define BSIZE 50
int main(int argc, char *argv[]) {
int f1, f2;
char buf[BSIZE];
f1 = open(argv[1], 0x0001, 0);
f2 = creat(argv[2], 0777);
read(f1, buf, BSIZE);
write(f2, buf, BSIZE);
return 0;
}
当我创建一个名为“a”的文件并将编译后的程序与命令一起使用时
./a.out a b
它确实创建了一个包含“a”内容的文件。但我的问题是,它的权限是-rwxr-xr-x。它不授予组和其他人写权限。此外,当我将功能更改为creat(argv[2], 0022);
那么权限将变为全 0 ----------。
creat 函数有什么问题吗?因为chmod 工作正常。
【问题讨论】:
标签: c unix permissions file-permissions