İçeriğe geç

Anne proses ve Çocuk proses Örneği

Ana proses için dönüş değeri, yeni oluşan çocuk processin ID’si çocuk process için dönüş değeri 0’dır.

fork_degeri>0 : Ana process döndürülür.

fork_degeri == 0 : Çocuk process için döndürülür.

fork_degeri == -1 : Çağrı başarısız oldu ve çocuk oluşamadı. Ana process içine döndürülür.

Örnek 1:

#include<iostream>
#include<unistd.h>//Bu kütüphane  ise getpid() ve fork() fonksiyonlarını buraya dahil etmek yani bu fonkları kullanmak icin 
using namespace std;
int main()
{
pid_t pid;

pid=fork();//Burada Ana prosesin bir kopyası oluşturulur.Oluşturulan bu proses çocuk proses denir.Ana prosesdeki pid değeri çocuğunun pid değeridir.
//Çocuk prosesdeki pid değeri ise çocuğun çocuğu olamadığı için 0 dır. 

if(pid==0)
{ 
   cout<<"Ben cocuk Proses PID="<<getpid();
  //getpid() fonksiyonu çalıştıran prosesin değerini döndürür. 
}
else
{
cout<<"Ben Anne proses PID="<<getpid();
}

return 0;}
Çıktı :

Ben Anne proses PID=3115Ben cocuk Proses PID=3117 

Örnek 2:

#include<iostream>
#include<unistd.h>
#include<sys/types.h>
using namespace std;
int main()
{
	pid_t pid;
	cout<<"Proc id:"<<getpid()<<endl;
	pid=fork();
	if(pid==0) // cocuk	
	{
		cout<<"BEN COCUK, PROC ID:"<<getpid()<<endl;
		cout<<"COCUK: BEN UYUDUM"<<endl;
		sleep(20); // 20 sn bekle devam et.
		cout<<"COCUK: BEN UYANDIM"<<endl;
	}
	else{
	        if(pid>-1)
			cout<<"COCUK PID:"<<pid<<endl;
		else
			cout<<"COCUK OLUSMADI"<<endl;	 
		cout<<"ANNE PID:"<<getpid()<<endl;
		
		cout<<"ANNE: BEN UYUDUM"<<endl;
		sleep(10); //10 sn bekle devam et.
		cout<<"ANNE: BEN UYANDIM"<<endl;
	}
 return 0;
}
Çıktı :

Proc id:15216
COCUK PID:15218
ANNE PID:15216
ANNE: BEN UYUDUM
BEN COCUK, PROC ID:15218
COCUK: BEN UYUDUM
ANNE: BEN UYANDIM
COCUK: BEN UYANDIM
Kategori:AnasayfaC++İşletim Sistemleri

Bu yazı yorumlara kapalı.

× Nasıl yardımcı olabilirim?