3-BEKLEME VE SONLANMA ÇAĞRILARI
Proseslerin bekleme ve sonlanma çağrıları : wait(),waitpid() ve exit() tir
İpliklerde ise pthread_join ve pthread_exit kullanılır.
wait(int *statu) ve waitpid(pid_t pid,int *statu,int secenekler) çağrıları için <sys/types.h> ve <sys/wait.h> kütüphaneleri gerekiyor.
waitpid() çağrısı kullanılarak istenen bir çocuk prosese özel veya çok çocuklu bir yapı için herhangi bir çocuk prosesin bitişi beklenebilir.
Eğer özel bir proses beklenecekse o prosesin proses tanımlayıcı numarası(pid) ilk parametre olarak girilir.Herhangi bir çocuk prosesin sonlanması beklenecekse -1 değeri girilir.
Proses sonlandığında waitpid() in ikinci parametresi olan ve adres değeri alan statü değişkeni sonlanan çocuk prosesin çıkış değerini alır.
waitpid() çağrısının son parametresi olan özellikler ise 0 veya OR larla değerler alabilir.
WNOHAN,WUNTRACED,WCONTINUED...
ÖRNEK
Bir anne ve çocuk proses oluşturup anne prosesin çocuk prosesin sonlanmasını wait çağrısı ile beklediği programı yazalım.
#include <iostream>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int main()
{
pid_t pid; //Fork çağrımızda geri dönüş değeri için
int statu; //Çocuk prosesin sonlanma değerinin alınması için
pid=fork(); //Çocuk prosesi oluşturduk.
if(pid==0)
cout<<"Merhaba la ben çocuk proses nasılsın"<<endl;
else{
cout<<"Selam ben anne proses"<<endl;
wait(&statu); //Prosesin bitmesini bekliyoruz.
}
}
ÖRNEK 2
Bir anne ve çocuk proses oluşturup anne prosesin çocuk prosesin çocuk prosesin sonlanmasını waitpid() çağrısı ile beklediği programı yazalım
#include <iostream>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int main()
{
pid_t pid , pid_w ; //fork() ve waitpid() çağrıları için
int statu;
pid=fork();
if(pid==0)
cout<<"Ben Çocuk..."<<getpid()<<endl;
else
{
cout<<"Ben anne proses , çocuğumu beklicem tmm mı"<<endl;
pid_w=waitpid(pid,&statu,0);
//Çocuğun sonlanmasını bekliyor
cout<<"Sonlanan..."<<pid_w<<endl; //Sonlanan prosesin PID si yazdırılıyor
}
}
SİSTEM ÇAĞRILARI PROSES VE İPLİK YÖNETİM ÇAĞRILARI -2-
Kaydol:
Kayıt Yorumları (Atom)
Spring Boot Uygulamasını Heroku üzerinde Deploy Etme
Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...
-
Bu yazımda hobi olarak ilgilendiğim bug bounty'i anlatmaya çalışacağım. Daha sonra bu konu üzerinde kendimizi geliştirmek için neler yap...
-
Flip-Flop doğruluk tabloları girişlerin durumuna bağlı olarak çıkışların ne olması gerektiğini anlatan tablolardır. Kısaca bir doğruluk tabl...
Hiç yorum yok:
Yorum Gönder