Fork işlem cağrısı kendi işinin aynısını yapan bir çoçuk süreç oluşturmadır. Yeni bir çocuk süreç oluşturulduktan sonra, her iki süreç fork () sistem çağrısının ardından sonraki talimatı göre yürütülür. Bir çocuk süreç, üst süreçte kullanılan aynı bilgisayarı , aynı CPU kayıtlarını, aynı açık dosyalar ile klonlanır.
Tam sayı döndürür ve parametre almaz Aşağıda fork () tarafından döndürülen farklı değerler bulunmaktadır.
Çocuk sürecinin oluşturulması başarısız olduğunda negatif değer döner
Çoçuk başarılı bir şekilde oluşturuldu.
Ebeveyn veya arayana iade edilir. Değer, yeni oluşturulan alt sürecin işlem kimliğini içerir.
Hadi beraber örneği inceleyelim ki fork un ne olduğunu anlayalım.
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
// make two process which run same
// program after this instruction
fork();
printf("Kodsuzluk!\n");
return 0;
}
Çıktı
KodSozluk
Kodsozluk
Kod da da gördüğümüz gibi fork fonksiyonu çağırdımızda işlemimizi 2 kere yaparak ekrana 2 defa yazmamızı sağladı.
Aşağıdaki kod parçacığınıda sizin için bırakıyorum.
sizce kaç defa Kodsozluk yazıcak çıktımız ?
int main()
{
fork();
fork();
fork();
printf("Kodsozluk\n");
return 0;
}