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.