[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Hola. Aqui va algo de ayuda On Wed, 5 May 1999, Jhon Jairo wrote: > 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? El crear un pipe (tuberia) es independiente de crear un proceso hijo a traves de un fork. Para que un pipe funcione debe ser abierta en sus dos extremos, y la pueden abrir programas que no tengan ningun 'parentesco'. luego de un fork (que por lo general se utiliza para ejecutar otro programa a traves de las instrucciones exec) es recomendable hacer lo siguiente: id = fork(); if(id==0) { /* Esto es el proceso hijo */ }else { /* Este es el proceso padre*/ } Quien se ejecuta primero? eso es dificil de decir, puede ser el padre o el hijo, depende del sistema > 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... Esto no es necesariamente cierto. > 2. Que significar que childpid sea igual a cero? o diferente de cero? si id == 0 estas en el proceso hijo, si id != 0 significa que estas en el proceso padre y el 'id' que tienes es justo el 'id' del hijo > 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) Depende en que estas programando: directamente en X11, Lesstif, Tcl/tk. Puedes hacer un 'apropos mouse' en la linea de comando y lo que buscas es 'mouse_setposition' aunque no te recomiendo utilizarlo. Tambien puedes revisar XF86MiscSetMouseSettings, pero la pregunta seria para que necesitas mover el cursor a una posicion en particular? Acaso quieres crear alguna interface diferente de la del raton para mover el cursor, en ese caso seria recomendable que le des una ojeada a los drivers para mouse (/usr/src/linux/drivers/char/) Suerte. Paul > 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); > } > } > > > > ----------------------------------------------------------------- > Mensaje enviado a traves de la lista: <linux-plug en linuxperu org> > ----------------------------------------------------------------- >