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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  hacer esto con fork esta bien?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hacer esto con fork esta bien?  (Leído 4,181 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
hacer esto con fork esta bien?
« en: 28 Septiembre 2010, 04:22 am »

hola

tengo una duda con fork

para usarlo tengo que hacerlo siempre asi?

Código
  1. if ( (pid1=fork()) == 0 )
  2. {
  3. printf("hijo (%d, hijo de %d)\n",  getpid(), getppid());
  4. }
  5.  
  6. waitpid(pid1, &status1, 0);

y si lo tengo que usar siempre así... esta bien que haga esto?

Código
  1. #include <sys/types.h>
  2. #include <sys/wait.h>
  3. #include <unistd.h>
  4. #include <stdio.h>
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8. pid_t pid1;
  9. int status1;
  10.  
  11. if ( (pid1=fork()) == 0 )
  12. {
  13. printf("hijo (%d, hijo de %d)\n",  getpid(), getppid());
  14. }
  15.  
  16. waitpid(pid1, &status1, 0);
  17. printf("hola\n");
  18.  
  19. return 0;
  20. }
  21.  

lo pregunto porque cuando lo ejecuto, me sale la frase "hola" dos veces...a menos de que ponga la frase "hola" en un else.. de esa manera me aparece 1 sola vez

me pueden explicar un poco sobre esto por favor

salu2


« Última modificación: 28 Septiembre 2010, 04:25 am por べりある ∰ Grimoire » En línea

.                                 
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: hacer esto con fork esta bien?
« Respuesta #1 en: 28 Septiembre 2010, 05:16 am »

El caso es que vez dos hola porque el fork() hace una copia identica del proceso que tambien se esta ejecutando... por lo tanto al ser 2 procesos que se ejecutan desde el punto donde se invoca el fork() cada uno ejecutara printf("hola\n");


En línea

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: hacer esto con fork esta bien?
« Respuesta #2 en: 28 Septiembre 2010, 06:17 am »

aa.. ok

pero entonces tengo que poner siempre un if(( pid= fork()) para usar todos los forks que vaya a necesitar? y en else poner todo el codigo que vaya a usar para que no ejecutar 2 veces todo el codigo?

salu2
En línea

.                                 
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: hacer esto con fork esta bien?
« Respuesta #3 en: 28 Septiembre 2010, 06:42 am »

me supongo que seria mas apto utilizar if anidados dentro de los else, pero no he necesitado mas de 2 procesos a la vez trabajando, pero hice la prueba y si, asi podrias hacerlo... aunque  no le encuentro mucha funcionalidad a mas de 2 procesos.
En línea

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: hacer esto con fork esta bien?
« Respuesta #4 en: 28 Septiembre 2010, 07:05 am »

entonces si llegara a usar otro proceso al mismo tiempo seria bueno ponerlo dentro de else verdad?

bueno, gracias por la ayuda
En línea

.                                 
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: hacer esto con fork esta bien?
« Respuesta #5 en: 28 Septiembre 2010, 16:26 pm »

Lo que quieres que haga el proceso padre podrias colocarlo en el else. Asi podrias crear un tercer proceso... pero para todo esto se necesita una buena planificacion, debido a que no se puede saber bien que proceso usara mas el procesador y cuando un proceso tendra disponibles los datos que necesita el otro.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Esto está bien?
Programación Visual Basic
Akkiles145 2 1,902 Último mensaje 19 Diciembre 2010, 21:59 pm
por Akkiles145
Esto esta bien ??? SOLUCIONADO!
PHP
nobo 6 3,505 Último mensaje 14 Febrero 2012, 17:47 pm
por nobo
hacer mas corto el programa y si esta bien hecho
Programación C/C++
creiko 3 4,329 Último mensaje 22 Septiembre 2016, 05:18 am
por dato000
[Pregunta]: ¿Está bien si hago esto?
Desarrollo Web
Leguim 0 2,013 Último mensaje 5 Enero 2020, 23:50 pm
por Leguim
Pido disculpas por intentar hacer estas cosas de hackear! Eso no está bien!
Hacking Wireless
win_7 7 7,695 Último mensaje 26 Mayo 2021, 16:47 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines