C Dilinde Process.h Kütüphanesi
Process.h kütüphanesi thread ve program işleyişi ile alakalı fonksiyonlar ve makrolar içeren bir C dili kütüphanesidir. Bu içeriğimizde process.h kütüphanesi fonksiyonlarını sizler için inceledik.
20.04.2016 tarihli yazı 12312 kez okunmuştur.
Process.h kütüphanesi thread ve program işleyişi ile alakalı fonksiyonlar ve makrolar içeren bir C dili kütüphanesidir. Process.h kütüphanesi DOS, Windows 3.1x,Win32 ve OS/2 işletim sistemlerinde çalışan birçok C dili derleyicisinde bulunur. Process.h kütüphanesindeki başlıca fonksiyonlar şunlardır;
Getpid()
Bu fonksiyon bulunduğu işlem sürecinin ID(işlem kimliği) numarasını geri döndürür. Kullanımı şöyledir;
_beginthread() ve endthread()
Thread kavramı, birbirinden bağımsız işlemleri ifade eder. Birden fazla thread kullanıldığında ise aynı anda bağımsız olarak işlemler yapılır. C dilinde standart olarak tek bir thread kullanılabilir. Eğer aynı anda program içerisinde farklı işlemleri yürütmek istiyorsak, derleyicimizin ayarlar kısmında multithread seçeneğini seçmeliyiz. Beginthread fonksiyonunda yer alan başlangıç adresi kısmına işlemleri başlatmak istediğimiz değişken, sabit veya fonksiyonun ismi yazılır, ardından unsigned veri tipindeki bellekte kaplamasını düşündüğümüz alan büyüklüğü yazılır. Ardından işlemin sıra numarası sıfırdan başlamak üzere yazılır. Genel kullanımı şöyledir;
_endthread() fonksiyonu ise _beginthread() ile başlayan işlemleri bitirir. İkisinin kullanımına şöyle bir örnek verilebilir;
►İlginizi Çekebilir: C Dilinde İntegral Alan Uygulama Nasıl Geliştirilir?
_c_exit() ve _cexit()
Bu iki fonksiyon birlikte kullanılarak yine C dilinde bulunan exit() fonksiyonunun işlevini yerine getirir. Aralarındaki fark ise exit() fonksiyonu kullanıldığında program exit() fonksiyonu ile sınırlandırılıp aynı zamanda uygulamadan çıkılırken, _c_exit() ve _cexit() fonksiyonları kullanıldıklarında program sonlandırılır ama uygulamadan çıkılmaz. Kullanımı şöyledir;
Spawn Fonksiyonları
_spawn fonksiyonları alt işleyişleri(child process) yüklemek ve çalıştırmak için kullanılan fonksiyonlardır. Bu fonksiyonların işlevleri aynı olup ana programdan alt programa aktarılan komut satırı argümanlarının kullanımında farklılık vardır. Bu fonksiyonların prototipleri şöyledir:
int _spawnl(int mode, char *filename, char *arg0,..., char *argn, NULL);
int _spawnle(int mode, char *filename, char *arg0,.., char *argn, NULL, char ** envp);
int _spawnlp(int mode, char *filename, char *arg0,..., char *argn, NULL);
int _spawnlpe(int mode, char *filename, char *arg0,..., char *argn, NULL, char ** envp);
int _spawnv(int mode, char *filename, char ** argv[]);
int _spawnve(int mode, char *filename, char ** argv[], char ** envp);
int _spawnvp(int mode, char *filename, char ** argv[]);
int _spawnvpe(int mode, char *filename, char ** argv[], char ** envp);
e Çevre değişkenlerini kullanıcıdan ister.
l Komut satırı argümanlarını bir liste olarak almaktadır.
p Çalıştırılmak istenen programı path çevre değişkenlerini kullanarak bulur.
v Komut satırı argümanlarını bir dizi olarak almaktadır.
Mode
Yukarıdaki fonksiyon prototiplerinde görülen mod argümanı bir programın altında başka bir program çalıştırılması sırasında ana programın ve alt programın çalışma şekillerini belirlemekte kullanılır bunlar:
P_WAIT:
Bu komut ile alt program, görüldüğü yerden itibaren yüklenir ve gerçekleştirilir. Alt program sonlandırıldıktan sonra ana program kaldığı yerden devam eder.
P_NOWAIT:
Bu komut ile ana program eş zamanlı gerçekleştirilir.
P_OVERLAY:
Bu komut ile ana programdan geri dönülmeyecek şekilde çıkılır ve alt program ana program yerine yürütülür.
Filename
Alt işleyişte yürütülecek programın ismini belirtir.
char arg0,…argn
Bu kısım ana programdan alt programa geçecek olan komut satırı argümanlarını belirtir. Son argümandan sonra NULL veya 0 konularak komut satırı argüman girişinin bittiği belirtilir.
char argv[]
Bu kısım ana programdan alt programa geçecek olan argümanların dizisini belirtir. Program adı da bu dizinin elemanıdır.
int argc
Komut satırı argümanlarının içeren dizinin eleman sayısını verir. Argc-1 dizinin girilen eleman sayısını verir.
Char envp[]
Bu kısım alt program için çevre değişkenlerini oluşan bir diziyi ifade eder.
Spawn fonksiyonlarını kullanımına aşağıdaki programlar örnek verilebilir.
Yukarıda aşağıdaki programdan alınacak bilgileri çalıştıracak Elektrikport.exe isimli programı oluşturduk.
Yukarıdaki programda spawnlp fonksiyonunun içine iki defa çalıştırılacak programın ismi yazılmıştır. Bunlardan biri dosya adı(file name) diğeri ise sıfır indisi olan dizi elemanıdır( char* arg0). Program çalıştırılırken her parametre(argüman)den sonra boşluk bırakarak yeni elemana geçebilirsiniz. Eğer aralarında boşluk olan iki ifadeyi tek argüman olarak almak istiyorsanız çift tırnak işareti içine argümanınızı yazmalısınız.
Program Çıktısı
Kaynak:
Digital Mars
Digital Mars
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
- Güneş Enerji Santrallerinde Yıldırımdan Korunma ve Topraklama
- Megger Türkiye Ofisi
ANKET