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

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

Re: your mail



Mejor prueba con esto:
-----------------------------------------------------------------------
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>

void algo(char *nombre)
{
   char *cadena;
   cadena = (char *) calloc(30, sizeof(char));
   printf("\nHola soy el %s\nEntrar cadena:", nombre);
   scanf("%s", cadena);
   printf("\nSe leyo: %s\n\n", cadena);
   fflush(stdout);
   free (cadena);
}

main()
{
   pid_t childpid;
   int status;
   algo("Padre");
   if((childpid = fork())==0){
        algo("Hijo");
        exit(1);
     } else if (childpid == wait(&status)){ /* esperamos al hijo */
        printf("Listo\n");
        exit(0);
     }
   
	/* codigo comun de padre e hiijo si se quiere */
}
-------------------------------------------------------------

No se exactamente lo que pasa pero fijate que por ejemplo no reservas
memoria para 'cadena' con lo que no se como no te ha pegado un core antes
del fork, tampoco esperas al hijo con lo que puedes tener toda clase de
problemas de bloqueo,, por ejemplo mientras el padre trata de escribir
"Listo" el scanf del hijo espera su entrada... hay puede haber lios.. (no
se si scanf manda algo a la salida estandar, puede que si).

Por cierto os recuerdo que hay una lista de gnu-c muy bonita... l-linux no
es lo mas apropiado no porque esto este demasiado off-topic sino porque es
mejor mantener las cosas ordenadas.. 

-------------------------------------------
respuestas a GNU-C en slug ctv es por favor.
-------------------------------------------

> 
> #include <stdio.h>
> 
> void algo()
> {
> 	char *cadena;
> 	scanf("%s",&cadena);
> 	printf("Se leyo: %s",cadena);
> }
> 
> main()
> {
> 	algo();
> 	if(fork()==0)
> 	{
> 		algo();
> 		exit(1);
> 	}
> 	printf("Listo");
> 	exit(0);
> }
> 
> 
> 
> Al correrlo, la primera llamada a al funcion algo corre ok pero la segunda
> llamada a la funcion algo, parece que no se
> ejecutara, termina el programa y sale
> Ahora hago lo mismo sin tuilizar fork y corre perfectamente.
> (bueno, tiene los problemas de memoria propios y demas)
> 
> Cual seria el cogdigo correcto? como deberia estructurar mi programa?
> ayuidenme profavor !!
> 
> 
> Que puede ser me tiene muy intrigado, que puedo leer para saber esto o que
> estoy haciendo mal talvez omiti algo, en fin
> 
> 
> de nuevo gracias
> 
> 
> Eloy
> 
> 


Saludos, adeu
----------------------------------------------------------
Roberto Díaz
rdiazmar en nova es   www.linuxfocus.org/developer/Roberto
----------------------------------------------------------



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