Hola estoy tratando de comunicar variables entre hilos pero no tengo mucha idea de como es... he intentado distintas formas pero no logro nada. como puedo hacerlo!!, tengo un pequeño ejemplo de lo que quiero hacer:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(){
int a = 10;
int *b = &a;
pid_t pid = fork();
if (pid == 0) {
//Child process
*b = 20; // deberia actualizar el valor de "a"
}
else {
//Parent Process
sleep(2);
printf("*B2: %d\n",*b
); // imprime el antiguo valor de "a" }
sleep(1);
return 0;
}
La llamada a fork() crea un proceso hijo duplicando el código del padre solo que en el ámbito del hijo fork() retorna 0 y en el del padre retorna el pid o -1 en caso de error.
Una vez duplicado el proceso sus variables son independientes ya que no comparten memoria.
Puedes comunicar los procesos a través de tuberías (pipes), creas la tubería antes de llamar a fork y el proceso hijo "hereda" los descriptores de archivos.