Seth Woolley's Man Viewer

popen(3) - pclose, popen, pclose, popen - Entrées/Sorties pour un processus - man 3 popen

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

POPEN(3)                  Manuel du programmeur Linux                 POPEN(3)



NOM
       popen, pclose - Entres/Sorties pour un processus.

SYNOPSIS
       #include <stdio.h>

       FILE *popen (const char *commande, const char *type);

       int pclose (FILE *stream);

DESCRIPTION
       La  fonction  popen()  engendre un processus en crant un tube (pipe(2,8)),
       excutant un fork(), et en invoquant le shell. Comme un tube est  uni-
       directionnel  par  dfinition, l'argument type doit indiquer seulement
       une lecture ou une criture, et non pas les deux.  Le flux  correspon-
       dant sera ouvert en lecture seule ou criture seule.

       L'argument  commande  est  un  pointeur sur une chane de caractres,
       termine par un caractre nul, et contenant  une  ligne  de  commande
       shell.   Cette  commande est transmise   /bin/sh en utilisant l'option
       -c.  L'interprtation en est laisse au shell.

       L'argument type est un pointeur sur une chane  de  caractres,  ter-
       mine  par un caractre nul, qui doit contenir   'r' pour la lecture
       ou 'w' pour l'criture.

       La valeur renvoye par popen() est un flux d'entre/sortie normal, 
       la seule diffrence qu'il doit tre ferm en appelant pclose()   la
       place de fclose().  L'criture dans le flux correspond   crire  sur
       l'entre  standard  de  la  commande. Le flux de sortie standard de la
       commande est le mme que celui du processus appelant popen(),   moins
       que la commande le modifie.  Symtriquement, la lecture depuis un flux
       ouvert par popen() correspond   lire la sortie  standard  de  la  com-
       mande,  et  dans  ce cas l'entre standard de la commande est la mme
       que celle du processus appelant popen.

       Notez que, par dfaut, les flux de sortie fournis par popen  disposent
       d'un buffer.

       La fonction pclose attend que le processus correspondant se termine, et
       renvoie alors le statut de sortie de la commande,  comme  en  utilisant
       wait4.

VALEUR RENVOYE
       La  fonction  popen renvoie NULL si l'appel systme fork(2) ou pipe(2,8)(2)
       choue, ou s'il n'a pas assez de mmoire.

       La fonction pclose renvoie -1 si wait4 choue, ou si une autre  erreur
       est dtecte.

ERREURS
       La  fonction  popen  ne  remplit  pas  errno si une allocation mmoire
       choue. Si les appels fork() ou pipe(2,8)() sous-jacents  chouent,  errno
       est  correctement  rempli. Si l'argument type est invalide, et si cette
       condition est dtecte, errno contient EINVAL.

       Si pclose() n'arrive pas   obtenir le status du fils,  errno  contient
       ECHILD.

CONFORMIT
       POSIX.2

BOGUES
       Comme  l'entre standard d'une commande ouverte en lecture partage son
       pointeur de position dans le flux avec le processus  appelant  popen(),
       si  le  processus original a effectu des lectures en buffer, la posi-
       tion du flux d'entre de la commande peut tre diffrente  de  celle
       attendue.  Symtriquement, la sortie d'une commande ouverte en crit-
       ure peut  s'emmler  avec  celle  du  processus  original.  Le  second
       problme peut tre vit en appelant fflush(3) avant popen.

       Il  n'est  pas  possible  de distinguer un chec d'excution du shell
       lui-mme, d'un chec d'excution d'une commande  par  le  shell,  ni
       mme  d'une  sortie  immdiate  de la commande. Le seul indice est un
       code de retour de 127.

HISTORIQUE
       Des fonctions popen() et pclose()  sont  apparues  dans  la  Version  7
       d'AT&T UNIX.

VOIR AUSSI
       fork(2),  sh(1),  pipe(2,8)(2),  wait4(2),  fflush(3),  fclose(3), fopen(3),
       stdio(3), system(3)

TRADUCTION
       Christophe Blaess, 1996-2003.



LDP                             21 juillet 2003                       POPEN(3)

References for this manual (incoming links)