Articles of mmap

impossible d’allouer une erreur de mémoire sur un Mac OS x – java (xx, xx) malloc: *** mmap (size = XX) a échoué (code d’erreur = 12)

Je crois que c’est un problème général, mais si cela aide, j’utilise la firebase database LucidDB (0.9.4) sur Mac OS X 10.8 avec 16 Go de RAM. Le logiciel de firebase database est écrit principalement en Java avec certaines parties en C ++. Lorsque j’ai augmenté la taille du pool de mémoire tampon à 1 […]

mmap lit un tableau de nombres entiers à partir d’un fichier

J’essaie de lire la masortingce des entiers d’un fichier en utilisant mmap. Si je le reçois en tant que pointeur de caractère à partir de la fonction mmap, tout se passe bien, mais si j’utilise un pointeur entier, les données sont périmées. Le problème avec l’utilisation du pointeur de caractères est que je dois parsingr […]

Comment détecter une erreur lorsque le fichier mappé de la mémoire de suralimentation a alloué plus d’espace disque que celui disponible sur le disque dur

Dans mon code de modélisation, j’utilise des fichiers mappés en mémoire vive pour allouer des tableaux de grande taille sur le disque. Cela fonctionne bien, mais je n’ai pas trouvé de moyen de détecter une situation dans laquelle j’alloue un tableau dont la taille est supérieure à celle de l’espace libre sur le disque. Par […]

évaluer la variable / fonction dans gdb

J’ai le code suivant, … char* seg = mmap(0, …) printf(“seg=%x\n”, seg); … Le programme imprime avec seg=b7ffd000 . Dans gdb (pour la même exécution), lors de l’utilisation de p/x seg , il affiche $2 = 0x0 . Je suis confus ici. N’est-ce pas la même chose? pourquoi les valeurs sont différentes. PS: dans mmap […]

Flux C ++ io versus mmap

Je commence un petit projet pour un magasin clé-valeur, en C ++. Je me demande comment les stream C ++ std se comparent à mmap en termes d’évolutivité et de performances. Comment l’utilisation de ifstream :: seekg sur un fichier qui ne rentre pas dans la RAM est-elle comparable à l’utilisation de mmap / lseek?

Deux applications C ++ partageant une région de mémoire en lecture seule sous Linux

J’ai deux processus P1 et P2. J’ai cette grande ressource en lecture seule, appelée “R”, à laquelle je souhaite que P1 et P2 aient access. R n’est pas simplement un groupe “plat” d’octets; c’est un groupe d’objects C ++ qui se dirigent l’un vers l’autre. Je préférerais que P1 et P2 ne partagent qu’une seule […]

GDB ne peut pas accéder à mmap () avec la mémoire allouée par le kernel?

Je rencontre un problème avec GDB et quelques tampons alloués dans l’espace kernel. Les tampons sont alloués par un module de kernel censé allouer des blocs de mémoire contigus, puis mappés en espace utilisateur via un appel mmap (). GDB, cependant, ne semble pas pouvoir accéder à ces blocs à tout moment. Par exemple, après […]

Pourquoi mmap un fichier 4GB sur armv7l 32 bits a réussi?

La page de manuel mmap(2) et les résultats de la recherche m’ont donné l’impression que mmap n’est limité qu’aux espaces adresse disponibles du système, moins les espaces adresse réservés au système. Donc, sur armv7l 32 bits, je suppose qu’il se situe autour de 3 Go = (4 Go à 1 Go). Mais il me semblait […]

Comment utiliser mmap pour pointer vers le type STL?

J’ai un transtypage mmap à un pointeur de caractère char * ptr; ptr = (char *) mmap (0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); C’était mon code précédent. Mais maintenant, je veux utiliser une carte au lieu de char *, car les exigences ont changé. Maintenant, ma carte est déclarée en tant que map […]

Comment puis-je mapper une région particulière dans la mémoire?

J’ai un programme. Je veux qu’il soit capable de mapper une région particulière de la mémoire sur différentes exécutions. J’ai le code source du programme. C / C ++ Je contrôle comment le programme est compilé. gcc Je contrôle comment le programme est lié. gcc Je contrôle le fonctionnement du programme (Linux). Je veux juste […]