Kalit so’zlar: Jarayon, avlod jarayon, ajdod jarayon, jarayonlar daraxti. Jarayon
Download 43.98 Kb.
|
Windowsda jarayonlar
- Bu sahifa navigatsiya:
- ShowMessage("calc.exe dastur ishga tushmadi"); execlp
- WinExec funksiyasi orqali tashqi dasturni ishga tushirish WinExec
- WinExec
- Qiymat Tartib raqam Tavsifi
Mavzu: Windowsda jarayonlar Reja: 1. Jaroyon tushunchasi 2. Avlod jarayonlarni hosil bo’lishi 3. Dastur oynasini boshqarish Kalit so’zlar: Jarayon, avlod jarayon, ajdod jarayon, jarayonlar daraxti. Jarayon-bu dasturning bajarilishidir. Ishlash vaqtida boshqa dasturlarni chaqirmaydigan dastur bu yagona jarayon deganidir. U o’zining manzillar sohasi, virtual xotirasi, bajariluvchi kodi va ma’lumotlari bilan xarakterlanadi. Ba’zi hollarda bir dastur orqali boshqa dasturlarni ishga tushirishga to’g’ri keladi. Bu ishga tushiriladigan dasturlar standart arxivatorlar, kalkulayotorlar, matnli va grafik muharrirlar bo’lishi mumkin. Bir dastur tarkibida boshqa dasturni ishga tushirilishi avlod jarayonni hosil qiladi. Jarayonlar daraxti Ko’pgina hollarda kompyuter yoki kompyuter tarmog’ida bir vatqda bir nechta ilova(jarayon)lar ishga tushirish va ular o’rtasida ma’lumot almashinuvini tashkillashtirish kerak bo’ladi. Bu narsa boshqa bir iloavni ilovalar orqali boshqarishni talab qiladi. Ilovalar o’rtasidagi ma’lumot almashinuvini turli xil texnologiyalar orqali qo’llab-quvvatlash mumkin: OLE,DDE, COM, Windowsda xabarlar almashinish mexanizmi. execlp funksiyasi orqali tashqi dasturni ishga tushirish execlp funksiyasi o’zining ilovasidan boshqaruvni ko’rsatilgan boshqa istalgan ilovaga uzatadi. Shu tariqa ajdod jarayon ishi tugatiladi va yangisi boshlanadi. execlp funksiyasi process.h faylida quyidagicha tavsiflangan: int execlp(char *path,char *arg0,*arg1,..,*argn,NULL) Bunda path parametri ishga tushirilishi lozim bo’lgan dasturning nomi va yo’lini tavsiflaydi. Agar pathda fayl nomi kengaytmasi va yo’li bilan birgalikda berilsa,u holda funksiya aynan shu faylni izlaydi. Agar fayl kengaytmasi berilmasa berilganga o’xshash fayl qidiriladi. Agar u fayl topilmasa fayl nomiga kengaytma sifatida .exe qo’shiladi va qidirish takrorlanadi. Agar faylning joylashgan o’rni berilmagan bo’lsa, u holda fayl dastur joylashgan katologdan qidiriladi. Bunda ham fayl topilmasa PATH o’zgaruvchilar fazosidan qidiriladi. Funksiyaning arg0…argn argumentlari ishga tushadigan dasturning buyruqlar satri orqali yuborilgan parametrlari hisoblanadi. Funksiya hech bo’lmaganda bitta arg0 parametrga qiymat yuborish orqali dasturni ishga tushirishi lozim. Kelishuvga ko’ra bu argument pathning nusxasi bo’ladi. Boshqa argumentlar, agar talab qilinsa yuklanadigan dasturga qo’shimcha informatsiyalarni jo’natadi. Agar u bir nechta so’zdan iborat bo’lsa, masalan, bir nechta xususiyatdan iborat bo’lsa, u holda ularni alohida parametr sifatida uzatish mumkin. Shuningdek, ularning barchasini arg1 ga birlashtirish ham mumkin. execlp funksiyasining oxirgi argumenti NULL argumentlar ro’yxatini tugaganligini bildiradi. Agar yangi ilova muvaffaqiyatli yuklansa execlp funksiyasi 0 qiymat qaytaradi, aks holda -1 qiymat qaytaradi. execlp funksiyasidan foyadalanishga misol(Windowsning standart kalkulaytorini ishga tushiradi): if(execlp("calc.exe","calc.exe",NULL))
1. Qandaydir ilovani yuklanishidan oldin uning kiruvchi interfeysini yaratishda. 2. Xotirada bo’laklarga bo’lingan holda qayta yuklanuvchi ilovani ishga tushirish. execlp funksiyasi orqali ishga tushirilgan yangi ilova tezkor xotirada uni chaqiruvchi ilovaning joyiga o’rnashadi. Shundan kelib chiqqan holda aytish mumkinki, bunda xotiradan foydalanish hajmi oshmaydi. WinExec_funksiyasi_orqali_tashqi_dasturni_ishga_tushirish___WinExec'>WinExec funksiyasi orqali tashqi dasturni ishga tushirish
CmdLine parametri NULL simvol bilan tugaydigan, ishga tushirilishi lozim bo’lgan ilovaning nomini tavsiflashda qo’llaniladi. Agar faylning yo’li ko’rsatilmagan bo’lsa, u holda Windows faylni katologlarda quyidagi ketma-ketliklarda izlaydi: 1. Ilova o’zi yuklanadigan katologdan. 2.Joriy katologdan. 3. GetSystemDirectory funksiyasi beradigan windowsning tizimli katologidan. 4. GetWindowsDirectory funksiyasi beradigan windows katologidan. 5. O’zgaruvchilar fazosidagi katologlar ro’yxatidan. CmdShow parametri Windowsda yuklanadigan ilova oynasinig tasvirlanish shaklini beradi. Ko’pchlik hollarda bu parametr qiymati sifatida SW_RESTORE ishlatiladi. Bu qiymat yuklanadigan oynaning aktivlashtirilishi va ekranda tasvirlanishi uchun qo’llaniladi. WinExec funksiyasi orqali muvaffaqiyatli ravishda yuklangan ilovalar uchun bu funksiya 31 dan katta qiymat qaytaradi. Muvaffaqiuyatsizlikka uchraganda esa quyidagi qiymatlardan birini qaytaradi:
Qo’llanilishiga misol: int i=WinExec(Edit1->Text.c_str(),SW_RESTORE); if(i<32) ShowMessage("Xato kodi: "+IntToStr(i)); Yuqoridagi misolda foydalanuvchi Edit tahrirlash oynasi orqali kiritgan dasturni bajaradigan va xato sodir bo’lsa mos javobni beradigan dastur kodi keltirilgan. spawnlp funksiyasi orqali tashqi dasturni ishga tushirish spawnlp funksiyasi ham tashqi ilovani o’zi dastlab yopilishi orqali ishga tushuaradi. execlp funksiyasidan farqli ravishda bu funkisya ko’plab imlkoniyatlarga ega. Bu funksiyani dasturda qo’llash uchun process.h va stdio.h sarlavha fayllari dasturda ko’rsatilishi kerak. Funksiyaning umumiy tavsifi quiydagicha:
Mazkur funksiya execpl funksiyasida birgina mode parametri bilan farq qiladi. Ko’pgina hollarda mazkur parametr quyidagi qiymatlarni qabul qiladi:
Download 43.98 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling