elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Hilos C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Hilos C  (Leído 6,161 veces)
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Hilos C
« en: 25 Febrero 2013, 16:19 pm »

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:

Código
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7.  
  8. int main(){
  9. int a = 10;
  10. int *b = &a;
  11.    pid_t pid = fork();
  12.  
  13.  
  14.    if (pid == 0) {
  15.        //Child process
  16.        printf("*B1: %d\n",a);
  17.        *b = 20; // deberia actualizar el valor de "a"
  18.    }
  19.    else {
  20.        //Parent Process
  21.        sleep(2);
  22.        printf("*B2: %d\n",*b); // imprime el antiguo valor de "a"
  23.     }
  24.     sleep(1);
  25.     return 0;
  26. }
  27.  
  28.  


« Última modificación: 25 Febrero 2013, 16:36 pm por <<<-Underwar->>> » En línea

<<<--Basura-->>>
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Hilos C++
« Respuesta #1 en: 25 Febrero 2013, 16:35 pm »

1) Eso es C.
2) Estas usando procesos, no hilos.


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Hilos C
« Respuesta #2 en: 25 Febrero 2013, 16:38 pm »

No tienes algún ejemplo sencillo, es que en internet hay muchos pero complejos.
En línea

<<<--Basura-->>>
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Hilos C
« Respuesta #3 en: 25 Febrero 2013, 16:49 pm »

Pues no he trabajado mucho con procesos la verdad, busca con el buscador del foro.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Hilos C
« Respuesta #4 en: 25 Febrero 2013, 17:34 pm »

Y de hilos no tienes algún ejemplo.
En línea

<<<--Basura-->>>
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Hilos C
« Respuesta #5 en: 25 Febrero 2013, 17:44 pm »

Una introducción( buena pero en ingles) al tema de hilos y procesos es "Advanced Linux Programming". Puedes descargarla en formato PDF, solo es cuestión de buscarla en la red.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Hilos C
« Respuesta #6 en: 25 Febrero 2013, 18:08 pm »

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:

Código
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7.  
  8. int main(){
  9. int a = 10;
  10. int *b = &a;
  11.    pid_t pid = fork();
  12.  
  13.  
  14.    if (pid == 0) {
  15.        //Child process
  16.        printf("*B1: %d\n",a);
  17.        *b = 20; // deberia actualizar el valor de "a"
  18.    }
  19.    else {
  20.        //Parent Process
  21.        sleep(2);
  22.        printf("*B2: %d\n",*b); // imprime el antiguo valor de "a"
  23.     }
  24.     sleep(1);
  25.     return 0;
  26. }
  27.  
  28.  

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.
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Hilos C
« Respuesta #7 en: 25 Febrero 2013, 19:35 pm »

Busca sobre IPC ( por lo que veo linux ).
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Hilos C
« Respuesta #8 en: 25 Febrero 2013, 23:13 pm »

Citar
Advanced Linux Programming
lei mal o es GPL?? que buena info :), no conocia este libro... Underwar si no te llevas muy bien con el ingles(como yo), te recomiendo este libro donde explican bastante bien el tema de IPC: "Programacion en Linux Kurt Wall"


Saludos
En línea

Ahorrate una pregunta, lee el man
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Hilos C
« Respuesta #9 en: 26 Febrero 2013, 15:58 pm »

Y de hilos no tienes algún ejemplo.

Este flooder que hice yo  ;) : http://foro.elhacker.net/empty-t374640.0.html
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Más información en los hilos.
Sugerencias y dudas sobre el Foro
oklopo 1 2,244 Último mensaje 2 Mayo 2004, 00:20 am
por [[SpAwN]]
Hilos en vb6 sin CreateThread?
Programación Visual Basic
Zzombi 4 6,181 Último mensaje 2 Febrero 2010, 15:18 pm
por Zzombi
Hilos en C
Programación C/C++
mapers 2 6,368 Último mensaje 13 Junio 2011, 10:21 am
por mapers
MiniLibrería de hilos
Programación C/C++
amchacon 1 1,819 Último mensaje 10 Julio 2013, 12:41 pm
por crazykenny
Problema con hilos
Java
SARGE553413 2 2,147 Último mensaje 11 Diciembre 2013, 05:58 am
por Leyer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines