//biblioteki niezbedne do kompilacji programu #include #include #include #include int main() { // glowna funkcja procesora pid_t pid; // zmienna pid przechowuje identyfikator procesu, ktory jest zwracany przez funkcje fork() int status; // zmienna status przechowuje status zakonczenia procesu potomnego pid = fork(); // funkcja fork() tworzy nowy proces potomny, ktory jest kopia procesu macierzystego if (pid < 0) { // jesli wartosc pid jest mniejsza od 0, oznacza ze funkcja fork() fprintf(stderr, "Błąd forka\n"); // wypisuje blad na standardowe wyjscie diagnostyczne exit(1); // zakonczenie programu z kodem wyjscia 1 } else if (pid == 0) { // jesli wartosc pid wynosi 0, jest to proces potomny printf("Jestem procesem potomnym\n"); // wyswietlenie komunikatu exit(2); // funkcja exit z kodem 2 } else { // jesli pid jest rozny od 0 to jest to proces macierzysty printf("Jestem procesem macierzystym. Oczekuję na zakończenie procesu potomnego...\n"); // wyswietlenie komunikatu wait(&status); // oczekawianie na zakonczenie procesu potomnego, blokada wykonania procesu macierzystego printf("Proces potomny zakończony. Kod powrotu: %d\n", status); // wyswietlenie komunikatu } return 0; }