terça-feira, 26 de abril de 2011

Dicas de Programação: A instrução fork em C (Linux)

No Linux, a instrução fork cria um novo processo dentro de sua aplicação:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int num_args, char** args) {
int pid = fork();
int numero = 10;
if (pid < 0) {
printf("Erro ao criar processo.");
exit(-1);
} else if (pid == 0) {
while (numero > 0) {
sleep(5);
numero--;
printf("Processo 1 - Executando: %d\n", numero);
}
exit(0);
} else if (pid > 0) {
while (numero > 0) {
sleep(3);
numero--;
printf("Processo 2 - Executando: %d\n", numero);
}
exit(0);
}
return 0;
}

Ou seja, isso não é uma thread que é executado em um mesmo processo, e sim, dois processos separados. Se você for no console e ver os processos (comando "ps aux"), verá que aparece duas vezes o nome de seu programa na listagem.

Legal! :)

Até mais!

Nenhum comentário: