से मूल argv सूचक का उपयोग करें क्या यह Haskell main
के भीतर से मूल argv
सूचक तक पहुंच बनाना संभव है?हास्केल
मेरा उपयोग केस यह है कि एप्लिकेशन शुरू होने के बाद मैं कमांड लाइन पैरामीटर को हटाना चाहता हूं ताकि उन्हें ps
के माध्यम से पढ़ा जा सके। ऐसा करने के कुछ तरीके हैं लेकिन सभी को मूल argv
में हेरफेर करने की आवश्यकता है।
मैं अगर मैं एक सी आवरण बारे में ऐसा करते हैं और कहते हैं वहाँ से hs_init
(बाद में argv
here आला के साथ आसपास mucking) करने में सक्षम हूँ, लेकिन यह हास्केल से यह करने के लिए अच्छे होगी।
धन्यवाद!
पीएस - यह प्रश्न duplicate से अलग है क्योंकि डुप्लिकेट prctl
का उपयोग करता है, जहां तक मैं कह सकता हूं, केवल आपको प्रक्रिया का नाम बदलने देता है। इसके अलावा, डुप्लिकेट argv[0]
"सेट" करने की तलाश में है, जबकि मैं प्रोग्राम को कॉल करने के लिए उपयोग किए जाने वाले मूल argv
पर एक म्यूटेबल संदर्भ प्राप्त करने का प्रयास कर रहा हूं।
मेरा प्रारंभिक अनुमान यह है कि हास्केल से यह संभव नहीं है क्योंकि कोई 'setArgs' फ़ंक्शन नहीं है और' getArgs' एक अपरिवर्तनीय सूची देता है। – bheklilr
धन्यवाद। मैं एफएफआई कोड पर डाल रहा हूं और उसी निष्कर्ष पर आया हूं, लेकिन चूंकि मैं इसके लिए अपेक्षाकृत नया हूं, मुझे नहीं पता था कि कोई दूसरा तरीका है या नहीं। – aaronlevin
यह ऐसा कुछ है जिसे मुझे 5 मिनट पहले भी संभव नहीं था, इसलिए एक तरीका हो सकता है, लेकिन अगर कोई तरीका है तो इसमें एक आंतरिक पुस्तकालय में कुछ अजीब कोने फ़ंक्शन शामिल होगा। जीएचसी विशिष्ट पुस्तकालयों में देखें, क्योंकि यह संभवतः उस कंपाइलर पर निर्भर करेगा जिस पर आप उपयोग कर रहे हैं। – bheklilr