int main() {
int fd; // File Descriptor for the integer file
int pagesize=getpagesize(); // To store the size of virtual page
printf("\nPage size is %d bytes.\n100 integers require %lu bytes\n",pagesize,100*sizeof(int));
void *data; // This is the pointer which will store the returned pointer when mmap() is called
fd=open("integer", O_RDWR);
data=mmap((caddr_t)0, pagesize, PROT_WRITE | PROT_READ, MAP_SHARED, fd,0);
close(fd);
sprintf((char*)data,"%d",100);
return 0;
}
Cela renvoie une erreur Segmentation 11Pourquoi ai-je cette erreur de segmentation?
Vous pouvez vérifier si mmap() a échoué. Si c'est le cas, appelez 'perror()' ou inspectez 'errno' pour savoir pourquoi il a échoué. Vous devez également vérifier si open() a échoué. – nos
Votre fichier "nombre entier" n'existe probablement pas; vous devrez le créer d'abord avec une longueur appropriée, un fichier de longueur nulle ne le fera pas ... Si vous l'ouvrez avec 'O_CREAT', écrivez-lui (assez pour vos données) des octets avant mmapping (seek() ing fera aussi). – Ctx