मुझे पता है कि realpath() फ़ंक्शन के साथ फ़ाइल का पूर्ण पथ प्राप्त करना संभव है। हालांकि, बीयूजीएस अनुभाग के अनुसार मैनपेज, इसके कार्यान्वयन में कुछ समस्या है। विवरण निम्नलिखित हैं:लिनक्स के तहत रीयलपाथ() के साथ प्रोग्रामेटिक रूप से फ़ाइल का पूर्ण पथ कैसे प्राप्त करें?
बग
बचें इस समारोह का उपयोग कर। यह तब से डिज़ाइन द्वारा टूटा हुआ है जब तक कि गैर-मानक resolved_path == नल सुविधा का उपयोग न करें) आउटपुट बफर, resolved_path के लिए उपयुक्त आकार निर्धारित करना असंभव है। POSIX के अनुसार आकार PATH_MAX पर्याप्तता का बफर है, लेकिन PATH_MAX को परिभाषित निरंतर नहीं होना चाहिए, और पथक (3) का उपयोग करके प्राप्त किया जाना चाहिए। और pathconf (3) पूछना वास्तव में मदद नहीं करता है, क्योंकि एक तरफ POSIX चेतावनी देता है कि pathconf (3) का परिणाम स्मृति mallocing के लिए विशाल और अनुपयुक्त हो सकता है। और दूसरी तरफ pathconf (3) -1 को वापस संकेत दे सकता है कि PATH_MAX बाध्य नहीं है।
libc4 और libc5 कार्यान्वयन में एक बफर ओवरफ़्लो (libc-5.4.13 में तय) शामिल है। इस प्रकार, सेट-यूज़र-आईडी प्रोग्राम जैसे माउंट (8) को एक निजी संस्करण की आवश्यकता है।
तो सवाल यह है कि फ़ाइल का पूर्ण पथ प्राप्त करने का सबसे अच्छा अभ्यास क्या है?
"[ओएस एक्स कमांड लाइन एप के पूर्ण पथ को प्रोग्रामेटिक रूप से पुनर्प्राप्त करने] का डुप्लिकेट (http://stackoverflow.com/questions/799679/programatically-retrieving-the-absolute-path-of-an-os- एक्स-आदेश-पंक्ति-ऐप) "? – bortzmeyer
नहीं। वे एक ही बात नहीं हैं। मैं जानना चाहता हूं कि निष्पादन योग्य के बजाय सामान्य फ़ाइल का पूर्ण पथ कैसे प्राप्त करें। – jcadam