/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T R A N S M I S S I O N   D E   ' STANDARD_IN '   V E R S   ' STANDARD_OUT '  :                                            */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtc/inout.01$c' :                                                                                              */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#include  <stdio.h>

#define   STANDARD_IN                                                                                                                   \
                    0
#define   STANDARD_OUT                                                                                                                  \
                    (STANDARD_IN+1)
#define   STANDARD_ERREUR                                                                                                               \
                    (STANDARD_OUT+1)

#define   BUFFER                                                                                                                        \
                    10                                                                                                                  \
                                        /* Taille des buffers d'ecriture et de lecture de la commande distante.                      */
#define   LWRITE                                                                                                                        \
                    BUFFER                                                                                                              \
                                        /* Nombre d'octets a ecrire par 'write(...)'.                                                */
#define   LREAD                                                                                                                         \
                    BUFFER                                                                                                              \
                                        /* Nombre d'octets a lire par 'read(...)'.                                                   */

main()
          {
          char                buffer_du_write[LWRITE];
          int                 longueur_du_write;
                                        /* Buffer destine aux arguments de la commande distante.                                     */
          int                 iterer_le_write=0;
                                        /* =0 : iterer le 'write(...)', #1 : ne plus iterer.                                         */

          char                buffer_du_read[LREAD];
          int                 longueur_du_read;
                                        /* Buffer destine aux resultats de la commande distante.                                     */
          int                 iterer_le_read=0;
                                        /* =0 : iterer le 'read(...)', #1 : ne plus iterer.                                          */

          while     (iterer_le_write == 0)
                    {
                    longueur_du_write=read(STANDARD_IN,buffer_du_write,LREAD);

                    if        (longueur_du_write > 0)
                              {
                              write(STANDARD_OUT,buffer_du_write,longueur_du_write);
                                        /* Transfert de 'STANDARD_IN' vers 'STANDARD_OUT'.                                           */
                              }
                    else
                              {
                              iterer_le_write++;
                              }
                    }

          close(STANDARD_OUT);
          close(STANDARD_IN);
          }



Copyright © Jean-François Colonna, 2023-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2023-2023.