Linux - necesito ayuda urgente

 
Vista:

necesito ayuda urgente

Publicado por carlos martinez (1 intervención) el 09/07/2003 01:05:57
codigo de la suma de dos enteros, creando procesos en c de linux
#include <stdio.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/wait.h>

int main()

{
int pid = 0, status = 0;
int a,b,c;
if ((pid = fork()) == -1) {
printf("Error al crear proceso hijo\n");
exit(1);
}
if (pid == 0)
{

/* Proceso Hijo */
/* printf("El PID de mi proceso padre es %d\n", getppid()); */
printf("suma de enteros\n");
printf("ingrese el primer entero:\n");
scanf("%d",a);
printf("ingrese el Segundo entero:\n");
scanf("%d",b);
c=a+b;
printf("la suma es de:\n", c);
sleep(5);
exit(1);

}
else { /* Proceso Padre */
/* printf("Mi PID es el %d y he creado un proceso hijo cuyo pid es %d\n", getpid(), pid); */

sleep(20);
wait(&status);
/* printf("\nEl proceso hijo finalizo con el estado %d\n", status); */

}
}
nota el programa no lee el segundo entero... se detiene la ejecucion hasta la lectura del primer entero y sale.....por favor sugerencias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:necesito ayuda urgente

Publicado por chuidiang (101 intervenciones) el 09/07/2003 09:07:34
La función scanf() necesita que le pases puntero para leer los números

int a,b
...
scanf ("%d", &a); /* Fijate en el & delante de a */
...
scanf ("%d", &b);
...

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:necesito ayuda urgente

Publicado por dani (8 intervenciones) el 30/07/2003 21:22:51
A parte de la observacion del & antes del nombre de variable en la funcion scanf prueba a poner la funcion wait() despues de la llamada de creacion del proceso hijo del programa...
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar