Utiliser chmod dans un programme C

J'ai un programme où j'ai besoin de définir les permissions d'un fichier (disons /home/hello.t) à l'aide de chmod et j'ai à lire les autorisations à définir à partir d'un fichier. Pour cela, j'ai d'abord lu les autorisations dans un tableau de caractères, puis essayez de modifier les permissions de ce fichier. Mais je vois que les autorisations sont définies de manière étrange.

Un exemple de programme que j'ai écrit:

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");
}

Je vois que les permissions de ce fichier ne sont pas mis en 777. Pouvez-vous svp m'aider sur la façon de définir les permissions de ce fichier après avoir lu la même chose à partir d'un tableau de caractères.

source d'informationauteur Raghav