Pb code c pour la commande chmod



Bonjour jai un ptit pb sur lexecution de mon programme, jessaye de refaire le chmod

void Changer_permissions(int valeur,char* name)

{

int resultat;

// Changer les permissions

resultat = chmod (name,valeur);

if(resultat==0) printf("Les permissions de %s ont ete modifiees !\n",name);

else printf("Echec du changement de permissions de %s\n",name);

}

int main(int argc,char* argv[])
{
// ./monfichier chmod VALEUR FICHIER

if(strcmp(argv[1],"chmod")==0)Changer_permissions(*(argv[2]),argv[3]);
}

quand je l'execute du genre ./monfichier chmod 700 [fichier]

sa change bien les permissions mais c'est du grand nimporte quoi alor j'ai surement du oublier qq chose ou quoi je sais pas!!

merci

2 réponses

  1. Contributeur
    hello
    convertir argv[2] en int, peut-être
    if(strcmp(argv[1],"chmod")==0)Changer_permissions(atoi(argv[2]),argv[3]);
    1. Quand tu fais chmod 700, 700 n'est pas le nombre 700, mais un codage des permissions sur trois caractères hexadécimaux.

      Je subodore qu'il faille convertir ton 700 en hexadécimal, tout simplement !