shm_open | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
int shm_open(const char *nom, int oflag, mode_t mode);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le fonctionnement de shm_open() est analogue à celui de open(2). On indique le nom d'un segment mémoire à créer ou ouvrir. Pour un fonctionnement portable, le nom doit commencer par une barre oblique « / » et ne pas en contenir d'autres.
oflag est un masque de bit associant l'une des deux constantes O_RDONLY ou O_RDWR et un ou plusieurs des attributs décrits ci-après.
Un nouvel objet de mémoire partagée a une taille initiale nulle --- on la fixe en utilisant ftruncate(2). Les octets d'un objet mémoire partagé nouvellement créé sont automatiquement initialisés à zéro.
Les définitions des ces valeurs d'attributs peuvent être obtenues en incluant <fcntl.h>.
Si elle réussit, la fonction shm_open() renvoie un nouveau descripteur décrivant l'objet de mémoire partagée. Le descripteur est assuré d'être le plus petit numéro disponible dans la table des descripteurs du processus. L'attribut FD_CLOEXEC (voir fcntl(2)) sera activé sur le descripteur de fichier.
Le descripteur est utilisé normalement pour les appels ultérieurs à ftruncate(2) (pour un objet nouvellement créé) et mmap(2). Après un appel à mmap(2) le descripteur peut être fermé sans affecter la projection mémoire.
Le fonctionnement de shm_unlink() est analogue à celui de unlink(2) : il supprime le nom d'un objet de mémoire partagée, et, une fois que tous les processus ont supprimé leur projection en mémoire, libère et détruit le contenu de la portion de mémoire. Après un appel réussi à shm_unlink(), les tentatives d'appeler shm_open() avec le même nom échoueront (sauf si O_CREAT est spécifié, auquel cas un nouvel objet distinc est créé).
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
ERREURS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VERSIONS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
POSIX.1-2001 dit que le groupe propriétaire d'un objet mémoire partagé nouvellement créé est soit le GID effectif du processus appelant, soit « un GID par défaut du système ».
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
POSIX ne précise pas le comportement de la combinaison O_RDONLY et O_TRUNC. Sous Linux, la troncature aura lieu --- cela n'est pas nécessairement le cas sous d'autres Unix.
L'implémentation sous Linux 2.4 des objets de mémoire partagée POSIX utilise un système de fichiers dédiés, monté en principe sous /dev/shm.
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 21 juillet 2003 et révisée le 6 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 shm_open ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
EACCES | ERREURS |
EEXIST | ERREURS |
EINVAL | ERREURS |
EMFILE | ERREURS |
ENAMETOOLONG | ERREURS |
ENFILE | ERREURS |
ENOENT | ERREURS |
O_CREAT | DESCRIPTION |
O_EXCL | DESCRIPTION |
O_RDONLY | DESCRIPTION |
O_RDWR | DESCRIPTION |
O_TRUNC | DESCRIPTION |