, поэтому я пытаюсь создать функцию c, которая использует chmod для изменения прав доступа к файлу, и пользователь должен иметь возможность ввести имя файла, а также разрешения (777), после чего строка будет выглядеть примерно так: «файл chmod 777». текст". Есть ли способ сделать это без необходимости указывать для каждого разрешения?
функция 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);
}
это, очевидно, не работает, но что-то вроде что