Está en la página 1de 2

eje, esto del MINIX es un pequeo vicio. Es bastante sencillo pero potente a la vez.

Vamos a probar el compilador C: Iniciamos MINIX e iniciamos sesin como root. Ahora a buscar el compilador. Vemos que gcc no est. Probamos cc y BINGO! Probamos el primer programa obligado editando con el VI el fichero prueba.c Aviso: En lugar de los smbolos de mayor y menor pongo asteriscos para no confundir el HTML. #include *stdio.h* main() { printf("Hola mundo"); } Compilamos... #cc prueba.c En este punto el compilador nos avisa que estamos utilizado una sintaxis antigua en la funcin main. Se solucionara con main(void) si es que nos molesta el warning. Y ejecutamos: #./a.out Para que diga:

Hola mundo.

Muy bien, la cosa pinta bien, pero, y las llamadas al sistema?

Utilicemos la fork. Recordad (lo deca ayer), que la fork sirve para crear un
proceso hijo. Nota: En lugar del smbolo menor he utilizado *menor*, y en lugar del smbolo mayor: *mayor* void main(void) { int retorno_fork; printf("El proceso %d va a crear un proceso hijo", getpid()); retorno_fork = fork(); if (retorno_fork () *menor* 0) { printf("No se ha podido crear el proceso"); exit(-1); } printf("Esto lo ejecutan tanto el proceso padre como el hijo"); if (retorno_fork *mayor* 0)

{ printf("Soy el proceso padre y he creado el proceso hijo numero %d", retorno_fork); } else { printf("Soy el proceso hijo. Me voy a dormir"); } } Como se ve en el propio cdigo, si la fork devuelve un nmero negativo algo ha fallado y no se ha creado el proceso hijo. Luego viene la parte que la ejecutan tanto el padre como el hijo (es lo que est despus del fork). Por ltimo, montamos otra bifurcacin. Sabemos que al proceso padre la fork le ha devuelto un nmero mayor que 0 y que es el pid del proceso hijo. Al proceso hijo la fork le devuelve un 0. Saludos.

También podría gustarte