【发布时间】:2011-02-02 03:22:09
【问题描述】:
我是 C 编程新手,我想对 dir 和 subdir 的文件执行 chmod 命令。如何使用 C 代码更改/显示权限?有人可以举个例子吗?如果有人能给我提供代码,我将不胜感激。
【问题讨论】:
我是 C 编程新手,我想对 dir 和 subdir 的文件执行 chmod 命令。如何使用 C 代码更改/显示权限?有人可以举个例子吗?如果有人能给我提供代码,我将不胜感激。
【问题讨论】:
有一个 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的结果。
【讨论】:
使用 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中
【讨论】:
一个例子:(显示/测试权限)
struct stat st;
int ret = stat(filename, &st);
if(ret != 0) {
return false;
}
if((st.st_mode & S_IWOTH) == S_IWOTH) {
} else {
}
【讨论】: