ஐடி பெறுவதில் பயன்படுத்தப்படும் செயல்பாடுகள்
இரண்டு வகையான ஐடிகள் இங்கே உள்ளன. ஒன்று செயல்முறை PID இன் தற்போதைய ஐடி. மற்றொன்று பெற்றோர் செயல்முறை PPID ஐடி. இந்த இரண்டு செயல்பாடுகளும் நூலகத்தில் வரையறுக்கப்பட்ட உள்ளமைக்கப்பட்ட செயல்பாடுகள். இந்த நூலகத்தைப் பயன்படுத்தாமல் குறியீட்டை இயக்கும் போது பிழை ஏற்படலாம் மற்றும் செயல்படுத்துவதை நிறுத்தலாம்.
C இல் getpid () செயல்பாடு
சில செயல்முறை உருவாகி, இயங்கும்போது, அதற்கு ஒரு தனிப்பட்ட ஐடி ஒதுக்கப்படும். இது செயல்முறை ஐடி. இந்த செயல்பாடு தற்போது அழைக்கப்படும் செயல்முறையின் ஐடியை திருப்பித் தர உதவுகிறது.
C இல் getppid () செயல்பாடு
பெற்றோர் செயல்முறை/செயல்பாட்டின் செயல்முறையைத் திருப்புவதற்கு இந்த ஐடி பயனுள்ளதாக இருக்கும்.
உதாரணம் 1
சி மொழியில் செயல்பாட்டில் பிஐடியின் உதாரணத்தைப் புரிந்து கொள்ள. உங்களுக்கு இரண்டு கருவிகள் தேவை: எந்த உரை எடிட்டர் மற்றும் லினக்ஸ் முனையம், அதில் நீங்கள் கட்டளைகளை இயக்க வேண்டும். எந்த உரை எடிட்டரிலும் ஒரு கோப்பை உருவாக்கவும். குறியீடு C மொழியில் எழுதப்பட்டிருப்பதால் code1.c என்ற கோப்பு பெயரை உருவாக்கியுள்ளோம், எனவே .c நீட்டிப்புடன் சேமிக்கப்பட வேண்டும்.
நாங்கள் ஒரு நூலகத்தை சேர்த்துள்ளோம். பின்னர் இங்கே முக்கிய நிரல் தொடங்குகிறது. முக்கிய நிரலில், உள்ளமைக்கப்பட்ட செயல்பாட்டை getpid () என்று அழைக்கிறோம்; தற்போதைய செயல்முறையின் ஐடியைப் பெற. மற்றும் ஒரு மாறி அறிமுகப்படுத்தப்பட்டு ஒதுக்கப்பட்டுள்ளது. PID () செயல்பாட்டின் மதிப்பு இந்த மாறியில் சேமிக்கப்படுவதால், இந்த மாறியைப் பயன்படுத்தி மதிப்பின் அச்சிடலை எடுப்போம்.
இப்போது இந்த கோப்பின் உள்ளடக்கங்களை லினக்ஸ் முனையத்தில் இயக்க விரும்புகிறோம். குறியீட்டு முன்நிபந்தனை முதலில் தொகுக்கப்பட்டு பின்னர் செயல்படுத்தப்பட வேண்டும். தொகுப்பதற்கு, GCC பயன்படுத்தப்படுகிறது. உங்கள் கணினியில் GCC இல்லை என்றால், நீங்கள் முதலில் சுடோ கட்டளையைப் பயன்படுத்தி நிறுவ வேண்டும்.
இப்போது எழுதப்பட்ட குறியீட்டை தொகுக்கவும். பின்வரும் இணைக்கப்பட்ட கட்டளையைப் பயன்படுத்தி இதைச் செய்ய முடியும்.
$ GCC –o code1 code1.c
அதேசமயம் –o என்பது கட்டளையில் சேமிப்புக் கோப்பைத் திறக்கப் பயன்படுகிறது. பிறகு –o க்குப் பிறகு, நாங்கள் கோப்பு பெயரை எழுதுகிறோம்.
தொகுத்த பிறகு, கட்டளையை இயக்கவும்.
$ ./code1
மேலே உள்ள படம் செயல்பாட்டின் செயல்முறை ஐடியைக் காட்டுகிறது.
உதாரணம் 2
முந்தைய எடுத்துக்காட்டில், நாங்கள் PID ஐப் பயன்படுத்துகிறோம். ஆனால் இந்த எடுத்துக்காட்டில், PID மற்றும் PPID இரண்டும் பயன்படுத்தப்படுகின்றன. இந்த செயல்பாட்டிற்கான மூல குறியீடு கிட்டத்தட்ட முந்தையதைப் போன்றது. ஒரு அடையாள அட்டையின் மற்றொரு சேர்க்கை மட்டுமே உள்ளது.
செயல்முறை ஐடிகளால் ஒதுக்கப்படும் பிரதான நிரலில் இரண்டு மாறிகள் அடங்கிய கோப்பை கருத்தில் கொள்ளவும். ஒன்று தற்போதைய செயல்முறை, மற்றொன்று பெற்றோர் செயல்முறை. முதல் உதாரணத்தைப் போலவே, இரண்டு ஐடிகளையும் அவற்றின் மாறிகள் மூலம் அச்சிடவும்.
Int pid_t = getpid ();Int ppid_t = getppid ();
இவை இரண்டும் முழு குறியீட்டின் முக்கிய செயல்பாடுகள். இப்போது, கோப்பு உருவாக்கிய பிறகு, அடுத்த கட்டமாக கோப்பை தொகுத்து இயக்க வேண்டும். கட்டளையில் GCC ஐப் பயன்படுத்தி தொகுக்கவும். தொகுத்த பிறகு, அதை உபுண்டுவின் முனையத்தில் இயக்கவும்.
$ GCC –o code1 code1.c$ ./code1
வெளியீடு செயல்முறை ஐடி முதலில் காட்டப்படும் என்பதைக் காட்டுகிறது, பின்னர் பெற்றோர் செயல்முறை ஐடி காட்டப்படும்.
உதாரணம் 3
அனைத்து செயல்முறைகளும் இணையான முறையில் இயங்குகின்றன. பெற்றோர் மற்றும் குழந்தை செயல்முறைகள் மீதமுள்ள அனைத்து வரிகளையும் கூட்டாக செயல்படுத்துகின்றன. இரண்டும் ஒரே நேரத்தில் முடிவுகளைத் தருகின்றன. ஆனால் சி குறியீட்டில் ஒரு முட்கரண்டி உபயோகிப்பதன் மூலம், இந்த செயல்பாடு 0 க்கும் குறைவான மதிப்பை வழங்கினால், செயல்பாட்டு அழைப்பு நிறுத்தப்பட்டது என்று அர்த்தம்.
அந்தந்த தலைப்பில் இரண்டு நூலகங்களைக் கொண்ட ஒரு புதிய கோப்பைக் கவனியுங்கள். இங்கே ஒரு நிபந்தனை பயன்படுத்தப்படுகிறது, அதில் if-else அறிக்கையை நாங்கள் பயன்படுத்தினோம். முக்கிய நிரலில், முட்கரண்டி மதிப்பு –ive மதிப்பில் இருந்தால், செயல்முறையின் ஐடி தோல்வியடைந்தது மற்றும் பெறப்படாது என்ற செய்தியை அது காண்பிக்கும். நிலைமை தவறாக இருந்தால், தொகுப்பாளர் நிபந்தனையின் மற்ற பகுதிக்குச் செல்வார். இந்த பகுதியில், செயல்முறை ஐடி பெறப்பட்டது, பின்னர் நாங்கள் இந்த செயல்முறை ஐடியைக் காண்பிப்போம் மற்றும் செயல்முறை ஐடி பெறப்பட்ட செய்தியை காண்பிப்போம். மூல குறியீட்டின் if-else அறிக்கையை இங்கே மேற்கோள் காட்டுவோம்.
இப்போது மீண்டும், குறியீட்டை தொகுத்து பின்னர் இயக்கவும்.
./ குறியீடு 2
வெளியீடு மற்ற பகுதி செயல்படுத்தப்பட்டதைக் காட்டுகிறது மற்றும் செயல்முறை ஐடியை அச்சிட்டு பின்னர் ஒரு PID செய்தியை காண்பிக்கும்.
உதாரணம் 4
அதே கருத்தை விளக்கும் மற்றொரு உதாரணம் இது. ஃபோர்க் () செயல்பாடு இரண்டு வெவ்வேறு மதிப்புகளை வழங்குகிறது. ஒரு குழந்தை செயல்முறை வழக்கில், மதிப்பு 0 ஆகும், இது திருப்பித் தரப்படும். அதே நேரத்தில், பெற்றோர் செயல்முறையின் மதிப்பு புதிய குழந்தையின் செயல்முறை ஐடி ஆகும்.
இந்த எடுத்துக்காட்டில், அதே if_else நிபந்தனை பயன்படுத்தப்படுகிறது. ஆனால் இங்கே, இரண்டு நிபந்தனைகள் பொருந்தும். PID ஐ பூஜ்ஜியத்திற்கும் குறைவாகவும் மற்றொன்று பூஜ்ஜியத்திற்கும் ஒப்பிடும்போது. PID பூஜ்ஜியத்திற்கு குறைவாக இருந்தால், அது ஒரு பிழை செய்தியை காட்டும். அதேசமயம் PID பூஜ்ஜியத்திற்கு சமமாக இருந்தால், அது ஒரு குழந்தை செயல்முறை என்று அர்த்தம், மற்ற பகுதி PID பூஜ்ஜியத்தை விட அதிகமாக இருந்தால், அது ஒரு பெற்றோர் செயல்முறை என்று காட்டுகிறது.
இப்போது குறியீட்டை தொகுத்து இயக்கவும்.
$ gcc –o code3 code3.c$./குறியீடு 3
வெளியீட்டில் இருந்து, மற்ற பகுதி முதலில் அச்சிடப்பட்டிருப்பதைக் காணலாம், அதாவது செயல்முறை ஐடி 0 ஐ விட அதிகமாக உள்ளது.
உதாரணம் 5
சரி, இந்த செயல்பாட்டின் செயல்பாட்டை விளக்க மேலே விவரிக்கப்பட்ட அனைத்து குறியீடுகளையும் தொகுக்க முயற்சித்த கடைசி உதாரணம் இது. கெட்பிட் () செயல்பாடுகளைப் பயன்படுத்த முட்கரண்டி () செயல்பாடுகளுடன் நாம் சுழல்களையும் பயன்படுத்தலாம். பல குழந்தை செயல்முறைகளை உருவாக்க நாம் சுழல்களைப் பயன்படுத்தலாம். இங்கே நாம் வளையத்தில் 3 மதிப்பைப் பயன்படுத்த வேண்டும்.
மீண்டும் நாம் குறியீட்டில் உள்ள நிபந்தனை அறிக்கையைப் பயன்படுத்த வேண்டும். ஃபார் லூப் ஒன்றிலிருந்து தொடங்கி 3 வரை திரும்பும்ஆர்.டிதிரும்ப
இப்போது கோப்பை சேமித்து அதை இயக்கவும். குறியீட்டை ஒரு கட்டளையில் மட்டுமே தொகுத்து இயக்க மற்றொரு எளிய முறை உள்ளது. அது.
$ GCC குறியீடுகள் 5. c –o s & ./code5இப்போது குறியீட்டின் வெளியீட்டை நோக்கி நகர்கிறது. பெற்றோர் செயல்முறையின் ஐடி அனைத்து குழந்தை செயல்முறைகளிலும் ஒரே மாதிரியாக இருக்கும். இதன் பொருள் இந்த செயல்முறைகள் அனைத்தும் ஒரு பெற்றோருக்கு சொந்தமானது. லூப் 3 க்கு மட்டுப்படுத்தப்பட்டிருப்பதால் இந்த செயல்முறைகள் ஒன்றன் பின் ஒன்றாக செயல்படுத்தப்படுகின்றன. 3 மறு செய்கைகள் மட்டுமே செய்யப்படும்.
முடிவுரை
இந்த கட்டுரையில் அடிப்படை அறிவு மற்றும் லினக்ஸ் கட்டளைகளில் getPID () செயல்பாட்டின் வேலை உள்ளது. இந்த செயல்பாட்டின் மூலம் ஒவ்வொரு செயல்முறைக்கும் தனிப்பட்ட ஐடி ஒதுக்கப்படுகிறது.