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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programación de Procesos en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programación de Procesos en C  (Leído 4,691 veces)
Adri58

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Programación de Procesos en C
« en: 25 Noviembre 2010, 11:27 am »

Tengo que desarrollar un programa muy sencillo con procesos en C, pero no se muy bien como hacerlo. Necesito vuestra experta ayuda, simplemente quiero pistas de como podría realizarlo.
Abreviando mucho sería algo así:
"El proceso padre lanza 2 procesos. El primero hace x y el segundo y. Sigue pidiendo cadenas has que metamos por teclado la cadena "exit", matando a los 2 procesos."

Hasta el momento he hecho esto:

Código:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>

void proceso1(){
//puts(datos_leidos);
printf("Proceso1");
//sleep(200);
}

void proceso2 (){
/*int fich;
fich=open("fichero", O_RDWR | O_TRUNC, 0644);
//write(fich,datos_leidos,strlen(datos_leidos));
close(fich);*/
printf("Proceso2");
//sleep(200);
}

int main(){
pid_t hijo1;
pid_t hijo2;
char datos_leidos[40]="";
int fin=0;

hijo1=fork();
if(hijo1==0)//si se crea el proceso1
{
proceso1();
}
else if(hijo1>0)//proceso padre
{
hijo2=fork();
if(hijo2==0)//si se crea el proceso 2
{
proceso2();
}
else
{
printf("soy el padre");
printf("Introduce datos: ");
scanf("%s",datos_leidos);
if(strcmp(datos_leidos,"exit")==0)
//si se mete exit se mata a los hijos
{
kill (hijo1, SIGTERM);
kill (hijo2, SIGTERM);
return 0;
}
}
}
}

Se supone que fork() devuelve 0 si se ha creado bien el proceso, si no, es el padre no?
El problema es que no se como verificar que proceso esta corriendo.

Gracias de antemano por vuestro tiempo


« Última modificación: 25 Noviembre 2010, 11:36 am por Adri58 » En línea

darkraider

Desconectado Desconectado

Mensajes: 231



Ver Perfil
Re: Programación de Procesos en C
« Respuesta #1 en: 25 Noviembre 2010, 14:17 pm »

http://www.opengroup.org/onlinepubs/009695399/functions/fork.html
 Alguna otra duda? Salu2


En línea

Curioso de mi...
Adri58

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Programación de Procesos en C
« Respuesta #2 en: 28 Noviembre 2010, 17:35 pm »

He estado haciendolo de nuevo y tengo esto, pero no me funciona y no se porque. Me sale un bucle infinito, si me podeis ayudar estaría muy agradecido:
Código:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>   

void proceso1(){
   printf("Proceso1");
}

void proceso2 (){
   printf("Proceso2");
}

int main(){
   pid_t hijo1;
   pid_t hijo2;
   char datos_leidos[40]="";
   
   printf("Introduce una cadena de texto: ");
   scanf("%s",datos_leidos);

   while(strcmp(datos_leidos,"exit")!=0){
      hijo1=fork();
      if(hijo1==0)
         proceso1();
      else
      {
         hijo2=fork();
         if(hijo2==0)
            proceso2();
         else{
            printf("Introduce una cadena de texto: ");
            scanf("%s",datos_leidos);
         }
      }         
   }
   kill(hijo1,SIGKILL);
   kill(hijo2,SIGKILL);
   return 0;
}
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Procesos
Programación Visual Basic
Thaorius 2 2,165 Último mensaje 15 Julio 2005, 03:28 am
por Thaorius
Listar procesos y realizar cosas con los procesos
Programación Visual Basic
sebas369 2 3,388 Último mensaje 14 Julio 2006, 16:08 pm
por sebas369
programacion web vs programacion de escritorio
Programación General
lupitapro 2 7,832 Último mensaje 29 Mayo 2010, 05:51 am
por Dreamaker
Ayuda con programación de procesos
Programación C/C++
ezkar 9 3,937 Último mensaje 3 Abril 2014, 16:45 pm
por rir3760
Programación de procesos
Java
thebus4k 2 3,097 Último mensaje 16 Noviembre 2020, 15:16 pm
por thebus4k
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines