我正在编写要在 UNIX 上运行的 ac 程序,并尝试使用 chmod 命令。查阅手册页后,我知道 chmod 需要两个参数。第一个是权限位,第二个是要更改的文件。我想对文件的当前权限位和用户输入的位进行按位或运算,并将其提供给 chmod() 以更改文件的权限。
我找到了该access()
功能,但无法弄清楚如何使用它来获取指定文件的权限位。
我现在拥有的是:
octalPermissionString = strtol(argv[1], (char**)NULL, 8);
if(chmod(argv[2], octalPermissionString | (access(argv[2], octalPermissionString)) < 0) {
fprintf(stderr, "Permissions of file %s were not changed.\n");
}
在哪里:
argv[1] 包含一个由用户输入的三位十进制数的字符串,该字符串将转换为八进制,然后用作进行按位或运算的权限位,
argv[2] 是要更改其权限的文件,也由用户指定。
octalPermissionString 是一个 long 用于保存用户输入的八进制转换。
是否/是否有任何其他函数可以返回给定文件的权限位?
编辑:缺少右括号