AIO_FSYNC | Début | Précédent | 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 |
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Plus précisément, si op est positionné à O_SYNC, toutes les opérations d'E/S actuellement en file d'attente seront achevées comme par un appel à fsync(2), avec op positionné à O_DSYNC. Cet appel est la version asynchrone de l'appel fdatasync(2). Veuillez noter qu'il s'agit seulement d'une requête - cet appel n'attend pas la fin de l'E/S.
À part aio_fildes, le seul membre de la structure pointée par aiocbp qui soit utilisé par cet appel est le membre aio_sigevent (une structure struct sigevent) qui indique le type de notification asynchrone désiré à l'achèvement. Tous les autres membres sont ignorés.
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 |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 Alain Portal <aportal AT univ-montp2 DOT fr> le 6 juillet 2005 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 aio_fsync ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
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 |
#include <wchar.h> wint_t btowc (int c);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VALEUR RENVOYÉE | 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 |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Cette fonction ne devrait jamais être utilisée. Elle ne permet pas d'encoder des séquences ayant plusieurs états, et manipule inutilement les octets un par un dans une séquence multi-octets. Utilisez la fonction mbtowc() à la place.
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 28 août 2000 et révisée le 22 décembre 2007.
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 btowc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/malloc.3
man2html: unable to open or read file ../man3/rpc.3
man2html: unable to open or read file ../man3/cerf.3
man2html: unable to open or read file ../man3/erf.3
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 |
extern char **environ;
int execl (const char *path, const char *arg, ...);
int execlp (const char *file, const char *arg, ...);
int execle(const char *path, const char *arg,
..., char * const envp[]);
int execv (const char *path, char *const argv[]);
int execvp (const char *file, char *const argv[]);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
L'argument initial de toutes ces fonctions est le chemin d'accès du fichier à exécuter.
Les arguments const char *arg ainsi que les points de suspension des fonctions execl(), execlp(), et execle() peuvent être vues comme des arg0, arg1, ..., argn. Ensemble, ils décrivent une liste d'un ou plusieurs pointeurs sur des chaînes de caractères terminées par des caractères nuls, qui constituent les arguments disponibles pour le programme à exécuter. Par convention, le premier argument doit pointer sur le nom du fichier associé au programme à exécuter. La liste des arguments doit se terminer par un pointeur NULL, et puisque ce sont des fonctions variadiques, ce pointeur doit être transtypé (char *) NULL.
Les fonctions execv() et execvp() utilisent un tableau de pointeurs sur des chaînes de caractères terminées par des caractères nuls, qui constituent les arguments disponibles pour le programme à exécuter. Par convention, le premier argument doit pointer sur le nom du fichier associé au programme à exécuter. Le tableau de pointeur doit se terminer par un pointeur NULL.
La fonction execle() peut également indiquer l'environnement du processus à exécuter en faisant suivre le pointeur NULL qui termine la liste d'arguments, ou le pointeur NULL de la table par un paramètre supplémentaire. Ce paramètre est un tableau de pointeurs sur des chaînes de caractères terminées par des caractères nuls, qui doit se terminer par un pointeur NULL. Les autres fonctions fournissent au nouveau processus l'environnement constitué par la variable externe environ. Certaines de ces fonctions ont une sémantique spécifique.
Sémantique spécifique pour execlp() et execvp() | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Les fonctions execlp() et execvp() agiront comme le shell dans la recherche du fichier exécutable si le nom fourni ne contient pas de slash « / ». Le chemin de recherche est spécifié dans la variable d'environnement PATH. Si cette variable n'est pas définie, le chemin par défaut sera « /bin:/usr/bin: ». De plus, certaines erreurs sont traitées de manière spécifique.
Si la permission d'accès au fichier est refusée (execve(2) renvoie EACCES), ces fonctions continueront à parcourir le reste du chemin de recherche. Si aucun fichier n'est trouvé, elles reviendront, et errno contiendra le code d'erreur EACCES.
Si l'entête d'un fichier n'est pas reconnu (execve(2) renvoie ENOEXEC), ces fonctions exécuteront un shell (/bin/sh) avec le chemin d'accès au fichier en tant que premier argument. Si ceci échoue, aucune recherche supplémentaire n'est effectuée.
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 |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le comportement de execlp() et execvp() lorsqu'une erreur se produit est une pratique historique mais n'a traditionnellement jamais été documenté, ni spécifié dans le standard POSIX. Lorsque l'erreur ETXTBSY se déclenche (fichier exécutable ouvert en écriture par un autre processus), BSD (et peut-être d'autres systèmes) endorment le processus appelant puis réiterent l'opération. Linux considère cette situation comme une erreur grave, et revient immédiatement.
Habituellement, les fonctions execlp() et execvp() ignoraient toutes les erreurs sauf celles décrites ci-dessus, ENOMEM et E2BIG. Désormais, elles reviennent à l'appelant si une autre erreur que celles-ci se produit.
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 23 octobre 1996 et révisée le 8 janvier 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 exec ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/gets.3
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 |
#include <stdio.h>
#include <wchar.h> wint_t fgetwc (FILE * flux); wint_t getwc (FILE * flux);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La fonction fgetwc() fonctionne de manière identique à fgetwc(). Elle peut être implémentée sous forme de macro, et peut évaluer ses arguments plus d'une fois. Il n'existe plus aucune raison de l'utiliser.
Pour des versions de ces fonctions ignorant les verrouillages, voir unlocked_stdio(3).
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 |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
En l'absence d'informations supplémentaires passées à l'appel fopen(3), il est normal de présumer que fgetwc() va lire une séquence multi-caractères du flux puis la convertir en une chaîne à caractères larges.
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 Thierry Vignaud <tvignaud AT mandriva DOT com> en 1999 et révisée le 17 décembre 2007.
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 fgetwc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/puts.3
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 |
#include <stdio.h>
#include <wchar.h> wint_t fputwc (wchar_t wc, FILE * fichier); wint_t putwc (wchar_t wc, FILE * fichier);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La fonction putwc() est identique à fputwc(). Elle peut être implémentée comme une macro et donc évaluer plusieurs fois son argument. Il n'y a plus aucune raison de l'utiliser.
Pour des versions de ces fonctions ignorant les verrouillages, voir unlocked_stdio(3).
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 |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
En l'absence d'informations supplémentaires passées à l'appel fopen(3), il est raisonnable de penser que fputwc() écrira en fait la séquence multi-octets correspondant au caractère large wc.
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 Thierry Vignaud <tvignaud AT mandriva DOT com> en 2000 et révisée le 17 décembre 2007.
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 fputwc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/gets.3
man2html: unable to open or read file ../man3/getfsent.3
man2html: unable to open or read file ../man3/fgetwc.3
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 |
#include <stdlib.h> void * calloc (size_t nmemb, size_t size);
void * malloc (size_t size);
void free (void * ptr);
void * realloc (void * ptr, size_t size);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
malloc() alloue size octets, et renvoie un pointeur sur la mémoire allouée. Le contenu de la zone de mémoire n'est pas initialisé. Si nmemb ou size vaut 0, malloc() renvoie soit NULL, soit une valeur de pointeur unique qui pourra être passé ultérieurement avec succés à free().
free() libère l'espace mémoire pointé par ptr, qui a été obtenu lors d'un appel antérieur à malloc(), calloc() ou realloc(). Si le pointeur ptr n'a pas été obtenu par l'un de ces appels, ou s'il a déjà été libéré avec free(), le comportement est indéterminé. Si ptr est NULL, aucune tentative de libération n'a lieu.
realloc() modifie la taille du bloc de mémoire pointé par ptr pour l'amener à une taille de size octets. realloc() conserve le contenu de la zone mémoire minimum entre la nouvelle et l'ancienne taille. Le contenu de la zone de mémoire nouvellement allouée n'est pas initialisé. Si ptr est NULL, l'appel est équivalent à malloc(size), pour toutes les valeurs de size. Si size vaut zéro, et ptr n'est pas NULL, l'appel est équivalent à free(ptr). Si ptr n'est pas NULL, il doit avoir été obtenu par un appel antérieur à malloc(), calloc() ou realloc(). Si la zone pointée était déplacée, un free(ptr) est effectué.
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
free() ne renvoie pas de valeur.
realloc() renvoie un pointeur sur la mémoire nouvellement allouée, qui est correctement alignée pour n'importe quel type de variable, et qui peut être différent de ptr, ou NULL si la demande échoue. Si size vaut zéro, realloc renvoie NULL ou un pointeur acceptable pour free(). Si realloc() échoue, le bloc mémoire original reste intact, il n'est ni libéré ni déplacé.
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le standard Unix98 réclame que malloc(), calloc() et realloc() remplissent errno avec ENOMEM en cas d'échec. La glibc suppose qu'il en est ainsi (et les versions glibc de cette routine le font). Si vous utilisez une implémentation personnelle de malloc() qui ne définit pas errno, certaines routines de bibliothèques peuvent échouer sans donner de raison dans errno.
Lorsqu'un programme se plante durant un appel à malloc(), calloc(), realloc() ou free(), ceci est presque toujours le signe d'une corruption du tas (zone de mémoire dans laquelle sont allouées les variables dynamiques). Ceci survient généralement en cas de débordement d'un bloc mémoire alloué, ou en libérant deux fois le même pointeur.
Les versions récentes de la bibliothèque C de Linux (libc postérieures à 5.4.23) et la bibliothèque glibc 2.x incluent une implémentation de malloc() dont on peut configurer le comportement à l'aide de variables d'environnement. Quand la variable MALLOC_CHECK_ existe, les appels à malloc() emploient une implémentation spéciale, moins efficace mais plus tolérante à l'encontre des bogues simples comme le double appel de free() avec le même argument, ou un débordement de tampon d'un seul octet (bogues de surpassement d'une unité, ou oubli d'un octet nul final d'une chaîne). Il n'est toutefois pas possible de pallier toutes les erreurs de ce type, et l'on risque de voir des fuites de mémoire se produire.
Si la variable MALLOC_CHECK_ vaut zéro, toutes les corruptions du tas détectées sont ignorées silencieusement ; si elle vaut 1, un message de diagnostique est affiché sur stderr. Si cette variable vaut 2, la fonction abort(3) est appelée immédiatement. Si cette variable vaut 3, un message de diagnostique est affiché sur stderr et le programme abandonne. L'utilisation d'une valeur MALLOC_CHECK_ non nulle est particulièrement utile car un crash pourrait sinon se produire ultérieurement, et serait très difficile à diagnostiquer.
BOGUES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
# echo 2 > /proc/sys/vm/overcommit_memoryVoir également les fichiers vm/overcommit-accounting et sysctl/vm.txt dans le répertoire de la documentation du noyau.
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 4 novembre 1996 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 malloc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
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 |
#include <wchar.h> size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Si les n octets commençant en s ne contiennent pas de caractère large complet, mbrtowc() renvoie (size_t) -2. Cela peut se produire même si n >= MB_CUR_MAX, lorsque la séquence multi-octets contient des séquences de décalage redondantes.
Si la séquence multi-octets commençant en s contient une séquence invalide avant le prochain caractère complet, mbrtowc() renvoie (size_t) -1 et place dans errno la valeur EILSEQ. Dans ce cas, les effets sur *ps sont indéfinis.
Une autre situation est possible, si s est non NULL, mais pwc est NULL. Dans ce cas, mbrtowc() se comporte comme précédemment, mais n'enregistre pas le caractère large obtenu.
Un troisième cas se présente si s est NULL. Alors, pwc et n sont ignorés. Si l'état de conversion représenté par *ps indique une conversion multi-octets incomplète, la fonction mbrtowc() renvoie (size_t) -1, remplit errno avec EILSEQ, et laisse *ps dans un état indéfini. Sinon, la fonction mbrtowc() remet *ps dans l'état initial et renvoie 0.
Dans tous ces cas, si ps est un pointeur NULL, une zone de mémoire statique propre à mbrtowc() est utiliséé à sa place. Sinon, *ps doit être un objet mbstate_t valide. Un tel objet mbstate_t noté a peut être initialisé en le mettant à zéro, par exemple ainsi :
VALEUR RENVOYÉE | 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 |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 29 août 2000 et révisée le 29 décembre 2007.
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 mbrtowc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
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 |
#include <stdlib.h> int mbtowc (wchar_t *pwc, const char *s, size_t n);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Si les n octets débutant en s ne contiennent pas un caractère multi-octets complet, ou s'il s'agit d'une séquence invalide, mbtowc() renvoie -1. Ceci peut se produire même si n est supérieur ou égal à MB_CUR_MAX, si la chaîne multi-octets contient des séquences de décalage redondantes.
Un autre cas possible se présent si s est non NULL, mais pwc est NULLL. Dans ce cas, la fonction mbtowc() se comporte comme ci-dessus, mais ne stocke par le caractère large en mémoire.
Un troisième cas est possible si s est NULL. Alors, pwc et n sont ignorés. La fonction mbtowc() réinitialise l'état de décalage, qu'elle seule connait, et renvoie une valeur non nulle si l'encodage à un état de décalage non trivial, ou zéro si l'encodage est sans état.
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Si s est NULL, la fonction mbtowc() renvoie une valeur non-nulle si l'encodage a un état de décalage non trivial, ou zéro si l'encodage est sans état.
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Cette fonction n'est pas sûre en contexte multi-threads. La fonction mbrtowc(3) fournit une meilleure interface pour la même fonctionnalité.
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 4 novembre 1996 et révisée le 10 décembre 2007.
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 mbtowc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/mpool.3
man2html: unable to open or read file ../man3/pthread_key_create.3
man2html: unable to open or read file ../man3/pthread_key_create.3
man2html: unable to open or read file ../man3/puts.3
man2html: unable to open or read file ../man3/fputwc.3
man2html: unable to open or read file ../man3/malloc.3
man2html: unable to open or read file ../man3/re_comp.3
man2html: unable to open or read file ../man3/regex.3
man2html: unable to open or read file ../man3/rpc.3
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 rexec(char **ahost, int inport, char *user, char *passwd, char *cmd, int *fd2p);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La fonction rexec() cherche l'hôte *ahost en utilisant gethostbyname(3). Elle renvoie -1 si l'hôte n'existe pas. Autrement, *ahost est configuré avec le nom standard de l'hôte. Si un nom d'utilisateur et un mot de passe sont également spécifiés, ils sont utilisés pour s'authentifier sur l'hôte ; autrement, on cherche les informations appropriées dans l'environnement puis dans le fichier .netrc de l'utilisateur situé dans le répertoire personnel. Si cela échoue, on demande l'information à l'utilisateur.
Le port inport spécifie quel port Internet DARPA sera utilisé pour la connexion ; l'appel getservbyname(exec, tcp) (voir getservent(3)) renverra un pointeur sur une structure qui contient le port nécessaire. Le protocole de la connexion est décrit en détails dans rexecd(8).
Si la connexion réussit, une socket dans le domaine Internet de type SOCK_STREAM est renvoyée à l'appelant et est fournie à la commande distante comme stdin et stdout. Si fd2p est non nul, un canal auxilliaire sur un processus de contrôle sera configuré et un descripteur de celui-ci sera placé dans *fd2p. Le processus de contrôle renverra une sortie de diagnostic de la commande (unité 2) sur ce canal et acceptera les octets sur ce même canal comme étant des numéros de signaux Unix à transmettre au groupe du processus de la commande. L'information de diagnostic n'inclut pas l'échec d'autorisation distante. Une connexion secondaire est configurée après que l'autorisation ait été vérifiée. Si fd2p est 0, stderr (unité 2 de la commande distante) sera la même que stdout et aucun canal supplémentaire ne sera utilisé pour envoyer des signaux arbitraires au processus distant, bien qu'il soit possible d'obtenir son attention en transmettant des données supplémentaires.
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
BOGUES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le service sous-jacent est considéré comme un gros trou de sécurité et ne devrait pas être activé sur bien des machines ; voir rexecd(8) pour plus d'explications.
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 Alain Portal <aportal AT univ-montp2 DOT fr> le 12 juillet 2006 et révisée le 8 janvier 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 rexec ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS ET DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ces routines permettent à des programmes C de faire des appels de procédures vers d'autres machines à travers le réseau. D'abord, le client invoque une procédure pour envoyer un paquet de données vers le serveur. À la réception du paquet, le serveur appelle une routine de distribution pour exécuter le service demandé, et renvoyer une réponse. Finalement, l'appel de procédure revient au client.
Pour permettre l'utilisation de ces routines, incluez le fichier d'entête To take use of these routines, include the header file <rpc/rpc.h>.
Les prototypes plus loin utilisent les types suivants :
typedef int bool_t; typedef bool_t (*xdrproc_t) (XDR *, void *,...); typedef bool_t (*resultproc_t) (caddr_t resp, struct sockaddr_in *raddr);
Voir les fichiers d'entête pour la déclaration des types AUTH, CLIENT, SVCXPRT et XDR.
void auth_destroy(AUTH *auth);
AUTH *authnone_create(void);
AUTH *authunix_create(char *host, int uid, int gid, int len, int *aup_gids);
AUTH *authunix_create_default(void);
int callrpc(char *host, unsigned long prognum, unsigned long versnum, unsigned long procnum, char *in, char *out, xdrproc_t inproc, xdrproc_t outproc);
enum clnt_stat clnt_broadcast(unsigned long prognum, unsigned long versnum, unsigned long procnum, char *in, char *out, xdrproc_t inproc, xdrproc_t outproc, resultproc_t eachresult);
eachresult(char *out, struct sockaddr_in *addr);
enum clnt_stat clnt_call(CLIENT *clnt, unsigned long procnum, xdrproc_t inproc, xdrproc_t outproc, char *in, char *out, struct timeval tout);
clnt_destroy(CLIENT *clnt);
CLIENT *clnt_create(char *host, unsigned long prog, unsigned long vers, char *proto);
bool_t clnt_control(CLIENT *cl, int req, char *info);
CLSET_TIMEOUT struct timeval // définir le délai total CLGET_TIMEOUT struct timeval // lire le délai total
CLGET_SERVER_ADDR struct sockaddr_in // lire l'adresse des serveurs
CLSET_RETRY_TIMEOUT struct timeval // fixer le délai de répétition CLGET_RETRY_TIMEOUT struct timeval // lire le délai de répétition
clnt_freeres(CLIENT * clnt, xdrproc_t outproc, char *out);
void clnt_geterr(CLIENT *clnt, struct rpc_err *errp);
void clnt_pcreateerror(char *s);
void clnt_perrno(enum clnt_stat stat);
clnt_perror(CLIENT *clnt, char *s);
char *clnt_spcreateerror(char *s);
char *clnt_sperrno(enum clnt_stat stat);
char *clnt_sperror(CLIENT *rpch, char *s);
CLIENT *clntraw_create(unsigned long prognum, unsigned long versnum);
CLIENT *clnttcp_create(struct sockaddr_in *addr, unsigned long prognum, unsigned long versnum, int *sockp, unsigned int sendsz, unsigned int recvsz);
CLIENT *clntudp_create(struct sockaddr_in *addr, unsigned long prognum, unsigned long versnum, struct timeval wait, int *sockp);
CLIENT *clntudp_bufcreate(struct sockaddr_in *addr, unsigned long prognum, unsigned long versnum, struct timeval wait, int *sockp, unsigned int sendsize, unsigned int recosize);
void get_myaddress(struct sockaddr_in *addr);
struct pmaplist *pmap_getmaps(struct sockaddr_in *addr);
unsigned short pmap_getport(struct sockaddr_in *addr, unsigned long prognum, unsigned long versnum, unsigned int protocol);
enum clnt_stat pmap_rmtcall(struct sockaddr_in *addr, unsigned long prognum, unsigned long versnum, unsigned long procnum, char *in, char *out, xdrproc_t inproc, xdrproc_t outproc, struct timeval tout, unsigned long *portp);
bool_t pmap_set(unsigned long prognum, unsigned long versnum, unsigned int protocol, unsigned short port);
bool_t pmap_unset(unsigned long prognum, unsigned long versnum);
int registerrpc(unsigned long prognum, unsigned long versnum, unsigned long procnum, char *(*procname)(char *), xdrproc_t inproc, xdrproc_t outproc);
struct rpc_createerr rpc_createerr;
void svc_destroy(SVCXPRT *xprt);
fd_set svc_fdset;
int svc_fds;
svc_freeargs(SVCXPRT *xprt, xdrproc_t inproc, char *in);
svc_getargs(SVCXPRT *xprt, xdrproc_t inproc, char *in);
struct sockaddr_in *svc_getcaller(SVCXPRT *xprt);
void svc_getreqset(fd_set *rdfds);
void svc_getreq(int rdfds);
bool_t svc_register(SVCXPRT *xprt, unsigned long prognum, unsigned long versnum, void (*dispatch)(svc_req *, SVCXPRT *), unsigned long protocol);
dispatch(struct svc_req *request, SVCXPRT *xprt );
void svc_run(void);
bool_t svc_sendreply(SVCXPRT *xprt, xdrproc_t outproc, char *out);
void svc_unregister(unsigned long prognum, unsigned long versnum);
void svcerr_auth(SVCXPRT *xprt, enum auth_stat why);
void svcerr_decode(SVCXPRT *xprt);
void svcerr_noproc(SVCXPRT *xprt);
void svcerr_noprog(SVCXPRT *xprt);
void svcerr_progvers(SVCXPRT *xprt);
void svcerr_systemerr(SVCXPRT *xprt);
void svcerr_weakauth(SVCXPRT *xprt);
SVCXPRT *svcfd_create(int fd, unsigned int sendsize, unsigned int recvsize);
SVCXPRT *svcraw_create(void);
SVCXPRT *svctcp_create(int sock, unsigned int send_buf_size, unsigned int recv_buf_size);
SVCXPRT *svcudp_bufcreate(int sock, unsigned int sendsize, unsigned int recosize);
SVCXPRT *svcudp_create(int sock);
bool_t xdr_accepted_reply(XDR *xdrs, struct accepted_reply *ar);
bool_t xdr_authunix_parms(XDR *xdrs, struct authunix_parms *aupp);
void xdr_callhdr(XDR *xdrs, struct rpc_msg *chdr);
bool_t xdr_callmsg(XDR *xdrs, struct rpc_msg *cmsg);
bool_t xdr_opaque_auth(XDR *xdrs, struct opaque_auth *ap);
bool_t xdr_pmap(XDR *xdrs, struct pmap *regs);
bool_t xdr_pmaplist(XDR *xdrs, struct pmaplist **rp);
bool_t xdr_rejected_reply(XDR *xdrs, struct rejected_reply *rr);
bool_t xdr_replymsg(XDR *xdrs, struct rpc_msg *rmsg);
void xprt_register(SVCXPRT *xprt);
void xprt_unregister(SVCXPRT *xprt);
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 31 août 2000 et révisée le 14 janvier 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 rpc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
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 sigvec(int sig, struct sigvec *vec, struct sigvec *ovec);
int sigmask(int signum);
int sigblock(int mask);
int sigsetmask(int mask);
int siggetmask(void);
Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La fonction sigvec() configure et/ou récupère le dispositif du signal sig (comme l'appel POSIX sigaction(2)). Si vec n'est pas NULL, il pointe sur une structure sigvec qui définit le nouveau dispositif pour sig. Si ovec n'est pas NULL, il pointe sur une structure sigvec qui est utilisée pour renvoyer le dispositif précédent de sig. Pour obtenir le dispositif courant de sig sans le modifier, vous devez spécifier NULL pour vec, et un pointeur non NULL pour ovec.
Les dispositifs pour SIGKILL et SIGSTOP ne peuvent pas être modifiés.
La structure sigvec à la forme suivante :
struct sigvec { void (*sv_handler)(); /* Dispositif du signal*/ int sv_mask; /* Signaux à bloquer dans le gestionnaire */ int sv_flags; /* Drapeaux */ };Le champ sv_handler spécifie le dispositif du signal et est soit l'adresse de la fonction gestionnaire de signal, soit SIG_DFL signifiant que le dispositif par défaut s'applique au signal, soit SIG_IGN signifiant que le signal est ignoré.
Si sv_handler spécifie l'adresse d'un gestionnaire de signal, sv_mask spécifie un masque de signaux qui seront bloqués pendant que le gestionnaire s'exécute. De plus, le signal pour lequel le gestionnaire est appelé est également bloqué par défaut. Toute tentative de bloquer SIGKILL ou SIGSTOP est silencieusement ignorée.
Si sv_handler spécifie l'adresse d'un gestionnaire de signal, le champ sv_flags spécifie des attributs contrôlant ce qui se passe lorsque le gestionnaire est appelé. Ce champ peut contenir zéro ou plus des attributs suivants :
La fonction sigmask() construit et renvoie un masque de signaux pour signum. Par exemple, on peut initialiser le champ vec.sv_mask passé à sigvec() avec un code tel que le suivant :
vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT); /* Bloquer SIGQUIT et SIGABRT pendant l'exécution du gestionnaire */
La fonction sigblock() ajoute les signaux de mask au masque de signaux du processus (comme l'appel POSIX sigprocmask(SIG_BLOCK)), et renvoie le masque de signaux précédent du processus. Toute tentative de bloquer SIGKILL ou SIGSTOP est silencieusement ignorée.
La fonction sigsetmask() configure le masque de signaux du processus à la valeur donnée dans mask (comme l'appel POSIX sigprocmask(SIG_SETMASK)), et renvoie le masque de signaux précédent du processus.
La fonction siggetmask() renvoie le masque de signaux courant du processus. Cet appel est équivalent à sigblock(0).
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Les fonctions sigblock() et sigsetmask() renvoient le masque de signaux précédent.
La fonction sigmask() renvoie le masque de signaux pour signum.
ERREURS | 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 |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Afin d'attendre un signal, BSD et System V fournissent tous les deux une fonction nommée sigpause(3), mais cette fonction n'a pas le même argument sur les deux systèmes. Voir sigpause(3) pour les détails.
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 Alain Portal <aportal AT univ-montp2 DOT fr> le 12 juillet 2006 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 sigvec ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/rpc.3
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 |
#include <math.h> double trunc(double x);
float truncf(float x);
long double truncl(long double x);
Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :
trunc(), truncf(), truncl() : _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ; ou cc -std=c99
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 7 juin 2001 et révisée le 19 décembre 2007.
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 trunc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/gets.3
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 |
#include <wchar.h> wint_t ungetwc (wint_t wc, FILE *flux);
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Si wc est WEOF, WEOF est renvoyé. Si wc est un caractère large non valide, errno est remplie avec EILSEQ et WEOF est renvoyé.
Si wc est un caractère large valide, celui-ci est remis dans le flux et devient alors disponible pour de nouvelles opérations de lecture de caractères larges. Le pointeur de fichier est décrémenté de un ou plus. L'indicateur de fin de fichier est réinitialisé. L'image du fichier sur disque n'est pas affectée.
NB : wc n'a pas besoin d'être le dernier caractère large lu depuis le flux ; ce peut être n'importe quel autre caractère large.
Si l'implémentation supporte la remise dans le flux de caractères multiples, les caractères larges seront lus dans l'ordre inverse. Cependant, seulement un niveau de réinjection est garanti.
VALEUR RENVOYÉE | 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 |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 Thierry Vignaud <tvignaud AT mandriva DOT com> en 2000 et révisée le 17 décembre 2007.
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 ungetwc ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
man2html: unable to open or read file ../man3/posix_memalign.3
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
EAGAIN | ERREURS |
EBADF | ERREURS |
EILSEQ | ERREURS |
EINVAL | ERREURS |
SV_INTERRUPT | DESCRIPTION |
SV_ONSTACK | DESCRIPTION |
SV_RESETHAND | DESCRIPTION |