मैं कुछ सी ++ कोड है कि उम्मीद है कि यह इस तरह देखने के लिए कमांड लाइन है है:कमांड लाइन तर्कों में ग्रहण और उद्धरण?
/path/to/exe -p: parameterName = "[/ path/to/एक/फ़ाइल,/path/to/अन्य/फ़ाइल] "
उद्धरण चिह्न समेत। वे सिंगल या डबल कोट्स हो सकते हैं, लेकिन वे वहां होना चाहिए। ग्रहण में यदि मैंने कमांड लाइन तर्क (डीबग कॉन्फ़िगरेशन/तर्क) सेट अप किया है और उपरोक्त कमांड लाइन विकल्प दर्ज करें (minus/path/to/exe) ग्रहण उद्धरण खाता है। चूंकि मैं इसे लिनक्स पर चला रहा हूं, इसलिए स्क्वायर ब्रैकेट शेल दुःख देते हैं, और यह कभी भी मेरे कोड में नहीं बनाता है।
अगर मैं की स्थापना आदेश पंक्ति इस प्रकार args:
"इस उद्धृत किया गया है"
argv [1] इस तरह दिखता है:
इस उद्धरण के बिना
यानी उद्धृत किया गया है । अगर मैं कमांड लाइन इस प्रकार की स्थापना:
\
"इस \ उद्धृत किया गया है" मैं मिलता है:
argv[1]: "this
argv[2]: is
argv[3]: quoted"
अगर मैं वर्ग कोष्ठक डाल करने के लिए यह खोल देने के लिए वापस चला जाता है में कोशिश दु: ख है, भले ही मैं उन्हें भागने की कोशिश:
\"\[this is quoted\]\"
मैं कैसे बता ग्रहण मेरी आदेश पंक्ति तर्क लेने के लिए बिल्कुल के रूप में मैं उन्हें अपने द्वारा दिए गए हैं?
धन्यवाद
मैंने नहीं किया, लेकिन मैंने अभी किया। एक अच्छी कोशिश है, लेकिन अभी भी मैं क्या नहीं कर रहा हूँ। मैंने पाया कि "gdb traces" कंसोल विंडो में यह मुझे ग्रहण की gdb के साथ वार्तालाप दिखाता है और वहां मैं इसे इस आदेश को जारी कर देख सकता हूं: –
(क्षमा करें - मेरा संपादन बाधित हो गया है)
मैंने नहीं किया, लेकिन मैंने अभी किया। एक अच्छी कोशिश है, लेकिन अभी भी मैं क्या नहीं कर रहा हूँ। मैंने पाया कि "जीडीबी निशान" कंसोल विंडो में यह मुझे ग्रहण की जीडीबी के साथ वार्तालाप दिखाता है और वहां मैं इसे 'सेट तर्क "जारी कर सकता हूं \" \\ [यह उद्धृत किया गया है \\] \ "" '। मुझे एहसास है कि शेल गैर-बच निकले ब्रैकेट का अर्थ है, लेकिन यह ग्रहण है जो मैंने इसे कमांड लाइन के रूप में उपयोग करने के लिए कहा है। यदि मैं एक वास्तविक कमांड लाइन पर एक ही पाठ दर्ज करता हूं तो यह अपेक्षित काम करता है - argv में कोई उद्धरण नहीं है, लेकिन ब्रैकेट अनचाहे के माध्यम से गुजरते हैं। –
@ जी-makulik: मेरा मानना है कि यह एक ग्रहण/सीडीटी मुद्दा है। मैं लिनक्स जीटीके और एक्लिप्स इंडिगो पर इस समस्या में भाग गया। सीडीटी डीबग कॉन्फ़िगरेशन के तर्क टैब में दर्ज रिक्त स्थान के साथ प्रोग्राम तर्कों के चारों ओर डबल-कोट्स ग्रहण/एमआई द्वारा सही ढंग से सेट नहीं होते हैं जब यह gdb के माध्यम से सेट-args होता है। आपको सिंगल कोट्स का उपयोग करना होगा। साथ ही, यह एक धागा है कि यह विंडोज़ पर भी काम नहीं करता है: http://www.eclipse.org/forums/index.php/t/175270/ मुझे बैश खोल से प्रोग्राम चलाने का सही व्यवहार मिलता है, लेकिन नहीं ग्रहण डीबग लॉन्चर्स। – timblaktu