【发布时间】:2020-06-10 10:52:24
【问题描述】:
所以我试图制作一个使用 chmod 更改文件权限的 c 函数 用户应该能够输入文件名以及权限(777),然后字符串看起来像这样“chmod 777 file.txt”。有没有一种方法可以做到这一点,而不必为每个权限都提供案例?
函数 RemoveChar 只是从字符串中删除“chmod”
void changeMod(char* ptrString)
{
RemoveChar(ptrString, 6, 0);
char *token = strtok(ptrString, " ");
char *file = strtok(NULL, " ");
mode_t owner, group, others;
for(int i = 0; i < 3; i++)
{
for (int permission = 0; permission < 8; permission++)
{
if(token[i] == ((char)permission))
{
if(i == 0)
{
owner = (permission * 100);
}
else if(i == 1)
group = (permission * 100);
else
{
others = (permission * 100);
}
}
}
}
chmod(file, owner|group|others);
}
这显然不起作用,但类似
【问题讨论】:
标签: c permissions chmod