gpt4 book ai didi

c - 如何更改文件权限的格式?

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:08 25 4
gpt4 key购买 nike

好吧,我正在用 C 编写 ls 程序,但遇到了问题。我必须以这种格式显示文件权限:

drwxr-xr-x

但我获得了作为 int 的权限,因为这会以 int 的形式返回这个值:

lstat(file->d_name, &info);
printf("%d \n", info.st_mode);

这显示例如:$ 33188

如何将 int 权限转换为 drwxr-xr-x

非常感谢。

问候。

最佳答案

文件的模式是权限和文件类型字段的位集。这些标志在 man stat.h 中定义.

您可以像这样从模式中提取信息:

switch(mode & S_IFMT) {
case S_IFDIR:
mode_text[0] = 'd';
break;
/* add other possibilities here */
default:
mode_text[0] = '-';
}
mode_text[1]= (mode & S_IRUSR) ? 'r' : '-';
mode_text[2]= (mode & S_IWUSR) ? 'w' : '-';
/* the third one is special; can indicates setuid as well */
mode_text[3]= (mode & S_IXUSR) ? (mode & S_ISUID) ? 's' : 'x' : '-';

等对于组,其他。

关于c - 如何更改文件权限的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com