如何在C中更改/显示权限

时间:2010-03-29 16:52:35

标签: c linux chmod

我是C编程的新手,我想在dir和subdir的文件上实现chmod命令。如何使用C代码更改/显示权限?有人可以帮忙举个例子吗?如果有人能为我提供代码,我将不胜感激。

3 个答案:

答案 0 :(得分:11)

有一个chmod功能。来自man 3p chmod

SYNOPSIS
   #include <sys/stat.h>

   int chmod(const char *path, mode_t mode);

...

如果您想阅读权限,可以使用stat。来自man 3p stat

SYNOPSIS
   #include <sys/stat.h>

   int stat(const char *restrict path, struct stat *restrict buf);

...

如果你想像你提到的那样递归地进行,你必须自己循环readdir的结果。

答案 1 :(得分:2)

使用GNU C库,您应该可以直接使用

int chmod (const char *filename, mode_t mode)
int chown (const char *filename, uid_t owner, gid_t group)

检查here ..所有这些功能都在sys/stat.h

答案 2 :(得分:0)

示例:(显示/测试权限)

struct stat st; 
int ret = stat(filename, &st);
if(ret != 0) {
    return false;
}   
if((st.st_mode & S_IWOTH) == S_IWOTH) {

} else {

}