#include <stdlib.h>
#include <stdio.h>

int main() {
	printf("Program demonstrujacy funkcje fork()\n\n");

	// rozdzielamy sie, od tego momentu beda istnialy dwa procesy wykonujace dalsza czesc kodu (w funkcja fork() wlacznie)
	pid_t pidFork = fork();
	// pobieramy identyfikator procesu (PID)
	pid_t pidProcesu = getpid();

	// ta wiadomosc powinna sie wyswietlic podwojnie, ale z roznymi PID
	printf("Ta wiadomosc powinna wyswietlic sie dwa razy, wyswietlenie dla procesu o pid = %d\n", pidProcesu);
	
	if (pidFork == 0) {
		// jezeli wynik zwrocony przez fork() jest rowny zero, to jestesmy w procesie potomnym
		printf("---> Jestem procesem potomnym, moj pid = %d\n", pidProcesu);
	} else {
		// jezeli wynik zwrocony przez fork() jest rozny od zera, to jestesmy nadal w procesie macierzystym
		printf("---> Jestem procesem macierzystym, moj pid = %d\n", pidProcesu);
	}

	return EXIT_SUCCESS;
}
