Pagini recente » Cod sursa (job #622772) | Cod sursa (job #3198688) | Cod sursa (job #1317149) | Cod sursa (job #1756828) | Cod sursa (job #2277988)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char *argv[]) {
int n = argc;
int i;
pid_t fork_result;
printf("Starting parent PID={%d}\n", getpid());
for (i = 1; i <= n; i++) {
fork_result = fork();
if (fork_result > 0) {
} else if (fork_result == 0) {
int x = atoi(argv[i]);
printf("%d: %d ", x, x);
while (x != 1) {
if (x % 2 == 0) {
x /= 2;
} else {
x = 3 * x + 1;
}
printf("%d ", x);
}
printf("\n");
printf("DONE! My PID={%d}, Parent PID={%d}\n", getpid(), getppid());
// exit(0);
} else if (fork_result < 0) {
printf("parent says: fork() failed\n");
}
}
for (i = 1; i <= n; ++i) {
wait(NULL);
}
}