2011-10-06 17 views
7

मुझे लगता है कि शीर्षक आत्म व्याख्यात्मक है। मैं एक कार्यक्रम बना रहा हूं और मैं सोच रहा था कि मुझे दोनों का क्या उपयोग करना चाहिए और क्यों।argp और getopt के बीच क्या अंतर है?

+0

http://www.gnu.org/s/hello/manual/libc/Argp.html अच्छी तरह से – lostyzd

+0

@lostyzd अद्यतन लिंक बताता है: http://www.gnu.org/software/libc/manual/html_node/ Argp.html # Argp। जिज्ञासा: argp [getopts पर आधारित है] (https://sourceware.org/git/?p=glibc.git;a=blob;f=argp/argp.h;h=40bf5e6b631e06a14a5416a82d1a589593858336;hb=4e42b5b8f89f0e288e68be7ad70f9525aebc2cff#l1)। –

उत्तर

10

argp अधिक लचीला/शक्तिशाली/आदि हो सकता है लेकिन getopt POSIX मानक का हिस्सा है। यह तय करता है कि आप अपने कार्यक्रम को पोर्टेबल होने की अपेक्षा करते हैं या नहीं।

1

मुझे लगता है कि चुनने के लिए बहुत कुछ नहीं है। Argp webpage कहना है कि यह:

Argp अधिक सामान्यतः प्रयोग किया getopt इंटरफ़ेस में अनुपलब्ध सुविधाओं प्रदान करता है। जीएनयू कोडिंग मानकों में वर्णित अनुसार, इन सुविधाओं में '--help' और '--version' विकल्पों की प्रतिक्रिया स्वचालित रूप से उत्पादन आउटपुट शामिल है। Argp का उपयोग करने से यह कम संभावना है कि प्रोग्रामर इन अतिरिक्त विकल्पों को लागू करने के लिए उपेक्षा करेंगे या उन्हें दिनांक तक रखेंगे।

Argp भी कई स्वतंत्र रूप से एक में विकल्प पारसर्स परिभाषित, उन दोनों के बीच संघर्ष में मध्यस्थता और परिणाम बनाने सहज दिखाई विलय करने की क्षमता प्रदान करता है। एक लाइब्रेरी एक argp विकल्प पार्सर निर्यात कर सकती है कि उपयोगकर्ता प्रोग्राम अपने स्वयं के विकल्प पार्सर्स के संयोजन के साथ नियोजित हो सकते हैं, जिसके परिणामस्वरूप उपयोगकर्ता प्रोग्राम के लिए कम काम होता है। कुछ कार्यक्रम लाइब्रेरी द्वारा निर्यात किए गए केवल तर्क पार्सर्स का उपयोग कर सकते हैं, जिससे पुस्तकालयों द्वारा लागू किए गए अबास्ट्रक्शंस के लिए लगातार और कुशल विकल्प-पार्सिंग प्राप्त कर सकते हैं।

3
Argp manual से

:

Argp अधिक सामान्यतः प्रयोग किया getopt इंटरफ़ेस में अनुपलब्ध सुविधाओं प्रदान करता है। जीएनयू कोडिंग मानकों में वर्णित अनुसार, इन सुविधाओं में '--help' और '--version' विकल्पों की प्रतिक्रिया स्वचालित रूप से उत्पादन आउटपुट शामिल है। Argp का उपयोग करने से यह कम संभावना है कि प्रोग्रामर इन अतिरिक्त विकल्पों को लागू करने के लिए उपेक्षा करेंगे या उन्हें दिनांक तक रखेंगे।