fork()
Publicado por Principiante (1 intervención) el 30/05/2012 03:31:46
Hola que tal la pregunta es: Se puede cargar una variable con un valor en el padre y usar ese valor en el proceso hijo ? Estoy usando semáforos, pero el hijo no reconoce el valor cargado desde el padre, el código es algo por el estilo
Desde ya muchas gracias....
Programa
Desde ya muchas gracias....
Programa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <sys/types.h>
#include <stdio.h>
#include <semaphore.h>
....
etc
sem_t *sem_cont, *sem_free;
int k;
...
etc
main()
{
if((sem_cont=sem_open("/sem_cont ", O_CREAT, 0644, 0)) ==(sem_t*)-1)
perror("Error al crear semaforo 1\n");
if((sem_free=sem_open("/sem_free", O_CREAT, 0644, 1)) ==(sem_t*)-1)
perror("Error al crear el semáforo 2\n");
switch(fork())
{
case -1:
perror("No se puede crear procesos");
case 0:
/* HIJO */
sem_wait(sem_cont) /* Acá se bloquea porque el semaforo esta inicilizado en 0 */
printf("Soy el proceso hijo\n");
/* Ahora que el padre actualizó la variable la quiero imprimir desde el hijo */
printf("valor de la varianle: %d\n", k)
default:
/* PADRE */
sem_wait(sem_free) /* esto se ejecuta porque el semaforo esta inicializado en 1 */
printf("Soy el proceso padre\n");
k = 99; /* actualizo una variable para que la use el hijo */
sem_post(sem_cont) /* esto es para que se ejecute el hijo */
.....
cerramos semáforos...etc.
wait(0);
....
}
exit(0);
}
Valora esta pregunta


0