Autor
|
Tema: Multi procesos en C ? (Leído 2,366 veces)
|
7emiliosk8
Desconectado
Mensajes: 73
|
Hola, estuve viendo un codigo y tiene muchas funciones que no conozco, getpid getppid fork y otras, pero no encuentro mucha informacion en google respecto a ellas, este tema se llama MULTIPROCESOS ? si es asi hay algun libro o algo donde salga esto para leer y entender mejor el codigo, gracias de antemano #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> #define col 3 #define fil 3 pid_t pidHA, pidHB, pidP,pidPHA,pidPHB; int main() { int A[fil][col],B[fil][col],c[fil][col]; int hijoA, hijoB; int i,j; pidP=getpid(); printf("PID del proceso padre es: %d\n",pidP ); hijoA=fork(); if(hijoA==-1) printf("Error al crear proceso"); if(hijoA==0) //hijo { pidHA=getpid(); pidPHA=getppid(); printf("PID del proceso HijoA es: %d, PID proceso padre es: %d \n",pidHA ,pidPHA ); for(i=0;i<fil;i++) for(j=0;j<col;j++) for(i=0;i<fil;i++) { for(j=0;j<col;j++) } } else { hijoB=fork(); if(hijoB==0) //hijo { pidHB=getpid(); pidPHB=getppid(); printf("PID del proceso HijoB es: %d, PID proceso padre es: %d \n",pidHB ,pidPHB ); for(i=0;i<fil;i++) for(j=0;j<col;j++) for(i=0;i<fil;i++) { for(j=0;j<col;j++) } } } wait(0); }
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Desde C11 está la librería threads. Sirve para programación multihilos nativa en C.
Para multiproceso tienes fork y la familia exec. En inglés hay bastante información.
|
|
« Última modificación: 21 Febrero 2017, 11:05 am por MAFUS »
|
En línea
|
|
|
|
7emiliosk8
Desconectado
Mensajes: 73
|
Gracias, 1 consulta, que significa C11 ? y hay alguna pagina que conozcas en ingles por ultimo donde salga esto ? lo idea seria un libro pero si no hay no importa :l
|
|
|
En línea
|
|
|
|
engel lex
|
Gracias, 1 consulta, que significa C11 ? y hay alguna pagina que conozcas en ingles por ultimo donde salga esto ? lo idea seria un libro pero si no hay no importa :l
https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)#C11es la ultima versión de C, la del 2011
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
integeroverflow
Desconectado
Mensajes: 60
|
tambien existe la libreria pthread. para utilizarla basta con incluir la libreria pthread.h aca un peque;o ejemplo: // gcc hilos.c -pthread #include <stdio.h> #include <pthread.h>
pthread_t hilos[5]; // manipuladores de los hilos
void *hilo(void *parametros) { printf("Soy el hilo %d\n", *(int*)parametros); pthread_exit(NULL); // matamos el hilo }
int main(void) { for(int i=0; i<5; i++) { pthread_create(&hilos[i], NULL, hilo, (void*)&i); // creamos el hilo, el primer parametro es un puntero al manipulador, el tercero es la funcion a la que va a llamar y el ultimo son los parametros. si necesitas multiples parametros podes hacer una estructura y meter todos los param ahi, y castearla a void para recuperarla en el thread. } printf("Listo\n"); }
mas info: man pthread_create man pthread_exit EDIT: me acabo de dar cuenta que hablan de procesos y no de hilos, perdon jaja
|
|
|
En línea
|
|
|
|
|
|