Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: xservice en 5 Septiembre 2013, 02:38 am



Título: problemas con el uso de tuberias
Publicado por: xservice en 5 Septiembre 2013, 02:38 am
Hola a todos, pues bien tengo un pequeño con un problema con tuberias  lo que sucede es que tengo el siguiente código y necesito modificarlo para que determine cual es el tamaño de la tubería en el sistema, alguna sugerencia? , espero y me puedan ayudar, de antemano muchas gracias
                                                                

Código
  1. # include <sys/types.h>
  2. # include <unistd.h>
  3. # include <stdlib.h>
  4. # include <stdio.h>
  5. # include <string.h>
  6. int main ()
  7. {
  8.        int bytes_enviados, bytes_leidos, i, descriptor_archivo [2];
  9.        char buffer [BUFSIZ + 1];
  10.        pid_t pid;
  11.  
  12.        if (pipe(descriptor_archivo) == 0){
  13.                pid = fork ();
  14.                if (pid == -1) {
  15.                        perror ("Error al ejecutar fork");
  16.                        exit (-1);
  17.                }
  18.                if ( pid == 0) { //Proceso hijo
  19.                        for(i = 1; i < 27; i++){
  20.                                memset(buffer, '\0', sizeof(buffer));
  21.                                bytes_leidos = read(descriptor_archivo[0], buffer, BUFSIZ);
  22.                                printf("El proceso hijo ha leido %d bytes y el contenido es : %s\n", bytes_leidos, buffer);
  23.                        }
  24.                        exit (0);
  25.                }
  26.                else { //Proceso Padre
  27.                        for( i = 65; i < 91; i++){
  28.                                bytes_enviados = write(descriptor_archivo[1], (char*) &i, sizeof(char));
  29.                                printf("El proceso padre ha enviado por la tuberia %d bytes \n", bytes_enviados);
  30.                                sleep(1);
  31.                        }
  32.                }
  33.        }
  34.        exit (0);
  35. }
  36.  
  37.