Cześć!
Mam takie zadanie:
Zadanie 2. Procesy - użycie funkcji fork()
Napisz program, który tworzy jeden proces potomny. Proces potomny wyświetla n razy zestaw małych liter alfabetu
(czyli litery od a do z), proces macierzysty wyświetla n razy zestaw wielkich liter alfabetu (czyli litery od A do Z.
Wartość n jest podawana w wierszu wywołania programu. Sprawdź, czy każde wykonanie programu będzie
przebiegało tak samo? Spróbuj uruchomić program na różnych komputerach. Wybierz duże n.
Uwaga: Nie wolno wykorzystywać liczbowych kodów ASCII!
I mam do Was pytanie - moje rozwiązanie jest poprawne? Czy spełniam wszystkie warunki tego zadania?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int n, i, c;
pid_t pid;
if (argc != 2) {
fprintf(stderr, "Usage %s <n>\n", argv[0]);
return (EXIT_FAILURE);
} else {
n = atoi(argv[1]);
if (n <= 0) {
fprintf(stderr, "n musi byc wieksze od 0\n");
return (EXIT_FAILURE);
}
}
pid = fork();
switch (pid) {
case -1:
fprintf(stderr, "Blad przy fork()");
break;
case 0:
for (i = 0; i < n; i++) {
for (c = 'a'; c <= 'z'; c++) {
printf("%c", c);
}
printf("\n");
}
break;
default:
for (i = 0; i < n; i++) {
for (c = 'A'; c <= 'Z'; c++) {
printf("%c", c);
}
printf("\n");
}
break;
}
return (EXIT_SUCCESS);
}