[Linux-bruxelles] implémentation de stat64

Frederic Peters fpeters at entrouvert.com
Mar 15 Avr 23:27:12 CEST 2008


Jean-Marc écrivait :

> Y a-t-il des codeurs C dans la salle (virtuelle) ?
> Et si oui, peuvent-elles-t-ils me dire si l'appel à stat64 construit
> comme cela est correct :
> - ---
> stat64("/usr/lib/cgi-bin/, /usr/lib/cgi-bin/test-perl.pl", 0xbff46288)

stat64 s'utilise à la manière de stat, dont la page de manuel nou
renseigne sur le prototype :
       int stat(const char *path, struct stat *buf);

Une fois n'est pas coutume, cette même page contient un exemple
d'utilisation de la fonction.

Sur l'appel que tu rapportes, j'écrirai deux choses :
 - le premier paramètre, il doit contenir un chemin, pas deux séparés
   par une virgule et un espace;
 - le second paramètre, il doit contenir un pointeur vers une
   structure (struct stat), certes 0xbff46288 pointe peut-être vers
   une telle structure, mais ce n'est pas clair.


Un petit programme d'illustration pour la route :

  #include <stdio.h>
  #include <sys/stat.h>
  
  int
  main(int argc, char *argv[])
  {
          struct stat sb;
  
          if (argc != 2) {
                  fprintf(stderr, "Missing filename as argument\n");
                  return 1;
          }
  
          if (stat(argv[1], &sb) != 0) {
                  perror("error");
                  return 1;
          }
  
          printf("%s has a size of %lld bytes.\n", argv[1], (long long)sb.st_size);
  
          return 0;
  
  }



        Frédéric




Plus d'informations sur la liste de diffusion Linux-bruxelles