Использование chmod в программе на C

У меня есть программа, в которой мне нужно установить разрешения для файла (скажем, /home/hello.t ) с помощью chmod , и мне нужно прочитать разрешения, которые должны быть установлены из файла. Для этого я сначала считываю разрешения в массиве символов, а затем пытаюсь изменить разрешения для файла. Но я вижу, что разрешения устанавливаются странным образом.

Пример программы, которую я написал:

main()
{
    char mode[4]="0777";
    char buf[100]="/home/hello.t";
    int i;
    i = atoi(mode);
    if (chmod (buf,i) < 0)
        printf("error in chmod");
}

Я вижу, что права доступа к файлу не установлены на 777. Не могли бы вы помочь мне, как установить права доступа к файлу после его чтения из массива символов.

16
задан Jonathan Leffler 14 October 2016 в 17:49
поделиться