को नियंत्रित कर रहा है, तो मेरे पास एक tty है (चलिए कहते हैं/dev/tty5) और जानना चाहते हैं कि वर्तमान में यह प्रक्रिया समूह या सत्र का नियंत्रण टीटी है या नहीं वर्तमान में प्रसिद्ध है। पीओएसईक्स में दो एपीआई फ़ंक्शंस हैं जो स्वयं को यहां बताते हैं: tcgetpgrp() और tcgetsid(), जिनमें से दोनों केवल काम करते हैं, हालांकि कॉलर के पास tty को नियंत्रित करने के रूप में tty है - जो इस मामले में उन्हें अधिक बेकार बनाता है (और वास्तव में मैं नहीं करता हूं ' tcgetsid() बिल्कुल बिंदु देखें नहीं।यह पता लगाने के लिए कि क्या एक लिनक्स टीटीई एक प्रक्रिया समूह
किसी के पास कोई सुझाव है कि मैं सी से, कैसे एक टर्मिनल वर्तमान में एक प्रक्रिया का नियंत्रण टर्मिनल है, मैं सी से कैसे पता लगा सकता हूं? मुझे केवल लिनक्स की परवाह है, इसलिए यदि लिनक्स-विशिष्ट एपीआई आवश्यक हैं तो मेरे साथ ठीक है।
मेरे मूल प्रश्न में मैंने पहले से ही यह बताने की कोशिश की कि tcgetpgrp() अधिकतर बेकार क्यों है, सी कोड स्निपेट देखें। कारण यह है कि मैं यह जानना चाहता हूं कि गेट्टी या टर्मिनल पर पहले से ही सक्रिय है या नहीं। मुझे टीटीई लिखने के लिए खुले अन्य प्रक्रियाओं की परवाह नहीं है (जो लॉगिंग के लिए हो सकता है, यड्डा यड्डा), मैं जानना चाहता हूं कि वास्तव में कोई इसे पढ़ रहा/नियंत्रित कर रहा है या नहीं। और एक ला lsof के माध्यम से जा रहा है मैं "sane" नहीं कहता है ... – user175104
यह सब वहाँ है। जब तक आप कर्नेल मोड डेटा तक नहीं पहुंचते, या आप रूट हैं तो आप उपयोगकर्ता मोड कॉल के साथ जो वर्णन करते हैं वह नहीं कर सकते हैं। लिनक्स में नहीं कारण: सुरक्षा। और मुझे खेद है अगर यह आपकी परिभाषा को अपमानित करता है। इसे Ulrich Drepper के साथ ले लो। –