La lecture d'un fichier à chaîne avec mmap

J'essaie de lire un fichier à l'aide de la chaîne de mmap.

J'étais en suivant cet exemple: http://www.lemoda.net/c/mmap-example/index.html

Mon code ressemble à ceci

unsigned char *f;
int size;
int main(int argc, char const *argv[])
{
struct stat s;
const char * file_name = argv[1];
int fd = open (argv[1], O_RDONLY);
/* Get the size of the file. */
int status = fstat (fd, & s);
size = s.st_size;
f = (char *) mmap (0, size, PROT_READ, 0, fd, 0);
for (i = 0; i < size; i++) {
char c;
c = f[i];
putchar(c);
}
return 0;
}

Mais je reçois toujours une segemation défaut lors de l'accès à f[i].
Ce que je fais mal?

Vous n'avez pas de vérifier les valeurs de retour de open et mmap. Ce qui se passe si vous le faites?

OriginalL'auteur arnoapp | 2013-12-08

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *