(Courriels de diversion: <reelirions@ressassait-ânonnent.com> <necessaire@humecterait-flouerais.com> <illusionnes@inversaient-contribuons.com> <entravait@racheterent-crasse.com> <vissais@confrontez-croquiez.com> <deferente@denicheras-petarader.com> <predilections@mi-voix-thesauriserais.com> <absente@photographierai-configuree.com> <poing@poses-ejecte.com> <cubant@oeils-de-boeuf-rebâti.com> )


Le  3 Jan, Arnaud Rolly écrit :
>  Je programme un peu sous Linux, mais la, même avec le man, je suis coinçé :
>  Je veut obtenir les permissions d'un fichier. J'utilise la commande stat.
>  Mais ensuite, je suis bloqué. Il faut utilser le champ st_mode. Mais comment ?
>  <=> Comment utiliser S_IRUSR, S_IWUSR... ?

  struct stat st;

  if (stat("monfichier", &st) < 0) {
     perror("stat(monfichier)");
     exit(EXIT_FAILURE);
  }
  if (S_ISREG(st.st_mode)) {
     /* fichier normal */
  }
  if (S_ISDIR(st.st_mode)) {
     /* répertoire */
  }

  if (st.st_mode & S_IRUSR) {
     /* lisible par le propriétaire */
  }
  if ((st.st_mode & (S_IROTH | S_IWOTH)) == (S_IROTH | S_IWOTH))) {
     /* lisible et inscriptible pour les autres */
  }

  /* les doits d'accès sous forme octale */
  printf("%o\n", st_st_mode & 0777);

  Bon, tu vois le principe : il suffit de faire des manipulations sur
les bits de st_mode.

-- 
Marc Thirion              | Toulouse, France
Un Travail pour Chacun    : http://www.multimania.com/untravailchacun/
Marc.Thirion@ISOscope.com : http://www.ISOscope.com/Pérennité des logiciels et des systèmes



---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://savage.iut-blagnac.fr/>