Qualcuno mi potrebbe spiegare qualcosa di piu' sui fork() ??
Quando si usano a cosa servone ecc...
Perche' io ho provato a guardare qualche manuale ma non riesco a capire a cosa servano...

Es.
Nel Programma qui sotto..
A cosa mi serve creare un processo figlio che esegue i comandi digitati quando ho il padre che non fa niente ???
codice:
#include <sys/types.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

#define DIM_COMMAND		1024

int main (int argc, char **argv) {
	char command[DIM_COMMAND];
	pid_t pid;
	
	while (1) {
		printf ("myShell >");
		fgets(command, DIM_COMMAND-1, stdin);
		command[strlen(command)-1] = '\0';
		
		if (!strcmp(command, "quit") || !strcmp(command, "exit")) exit(0);
			
		if (pid = fork()) {
			wait(0);
		} else {
			if (system(command)) {
				printf ("Not Found...\r\n");
			}
			exit(1);
		}
	}
	
	return (0);
}
Grazie.