Quelqu'un peut-il expliquer comment je peux implémenter une fonction mread, en utilisant l'appel système read(). Cette méthode doit lire les contenus qui se trouvent dans le fichier mmapped et les lire dans un tampon. J'ai accès au fichier mmapped et à la mémoire tampon au moyen de pointeurs. (c'est-à-dire void * addr et void * buff).Lire un fichier mappé et le stocker dans un tampon
Votre aide est grandement appréciée.
Essayez jusqu'à présent:
int fd;
if ((fd = open("file.hole",O_RDWR, "rb")) < 0) {
perror("create .hole file error");
exit(EXIT_FAILURE);
}
if (write(fd, addr, count)!= count) {
perror("Cannot write from address");
exit(EXIT_FAILURE);
}
buff = (char*)malloc(count * sizeof(char *));
if (read(fd, buff, count)) {
perror("Cannot read from file descriptor to the buffer");
exit(EXIT_FAILURE);
}
int fd; si ((fd = ouvert ("fichier.hole", O_RDWR, "rb")) <0) { perror ("créer une erreur de fichier .hole"); exit (EXIT_FAILURE); Si (écrire (fd, addr, compte)! = Nombre) { perror exit (EXIT_FAILURE); } buff = (char *) malloc (compte * sizeof (char *)); If (read (fd, buff, count)) { perror ("Impossible de lire le descripteur de fichier vers le tampon"); exit (EXIT_FAILURE); } – Samba693
Ou peut-être que je peux attribuer un caractère par caractère tel que le code suivant? buff = (char *) malloc (count * sizeof (char *)); pour (int i = 0; i
Samba693
Copie possible: http://stackoverflow.com/questions/24350294/using-read-and-write-system-calls-to-access-mmapped-memory – Damon