[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Programacion



hi, listas...

acabo de bajar el manual del programador de Linux y tengo ciertas
inquietudes con la programación de las pipes...

1. Al crear la tuberia se crea un proceso hijo para comunicarse, la
pregunta es: cuando comienza a ejecutarse el proceso hijo?, cuando el
padre cierra el extremo de escritura de la cañeria? o cuando el padre
empieza a leer en la cañeria?

estube poniendo mensajes para ver que es lo que hace y me parece que el
hijo empieza a ejecutarse cuando el padre empieza a leer en la
cañeria...

2. Que significar que childpid sea igual a cero? o diferente de cero?

3. Yo he programado en C bajo DOS y Windows, ahora quiero empezar bajo
UNIX para realizar mi proyecto de grado (eso espero), ¿No existe el
posicionamiento del cursor? ejemplo: gotoxy(x,y)

programa:

pipe.c

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(void)
{
  int fd[2], nbytes;
  pid_t childpid;
  char string[]="Hola a todos!\n";
  char readbuffer[80];

  pipe(fd);
  printf("Antes de Crear Hijo\n");
  if((childpid=fork())==-1)
  {
    perror("fork");
    exit(1);
  }
  printf("Despues de crear hijo\n");
  printf("antes del IF:%d\n",childpid);
  if(childpid==0)
  {
    printf("entre childpid==0\n");
    close(fd[0]);
    write(fd[1],string, strlen(string));
    printf("Antes de exit childpid:%d\n",childpid);
    exit(0);
  }
  else
  {
    printf("Entre en el else\n");
    close(fd[1]);
    printf("dentro del Else:%d\n",childpid);
    nbytes=read(fd[0], readbuffer, sizeof(readbuffer));
    printf("Cerre la tuberia");
    printf("Recibido string: %s\n", readbuffer);
  }
}





[Hilos de Discusión] [Fecha] [Tema] [Autor]