我需要将文件的基本文件权限与输入的文件权限进行比较。输入应保存在中argv[1]
,文件的许可信息将存储在classic中struct stat stat_buf
,尤其是在该stat_buf.st_mode
字段中。
执行的一个示例是./program 775
。然后程序必须说这stat_buf.st_mode
与代码中某个文件的权限相同。但是我知道的是,格式st_mode
很棘手,因为必须将其读取为八进制,然后将其转换为int,依此类推。如何比较没有问题?
的格式
st_mode
比较棘手,因为必须将其读取为八进制[...]
不是特别。只需strtoul()
在适当的底数(8)上使用:
unsigned long mode = strtoul(argv[1], NULL, 8);
if (statbuf.st_mode == mode) {
// permissions match
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句