Orijinal argv
işaretçisine bir Haskell main
içinden erişmek mümkün mü?Haskell'den orijinal argv işaretçisine erişim
Kullanım durumu, uygulama başladıktan sonra komut satırı parametrelerini kaldırmak istediğim için ps
aracılığıyla okunamıyor. Bunu yapmanın birkaç yolu vardır, ancak tümü orijinal argv
'u manipüle etmeyi gerektirir.
Ben C sarmalayıcı yazarsanız bunu yapmak ve (sonradan here ala argv
mucking) oradan hs_init
çağırmak mümkün, ancak işe Haskell dan bunu yapmak daha güzel olurdu.
Teşekkürler!
PS - bu soru, prctl
numaralı kopyasını kullandığı için duplicate'dan farklıdır, bu yalnızca söyleyebileceğim kadarıyla yalnızca işlem adını değiştirmenize izin verir. Ayrıca, yineleme programı çağırmak için kullanılan orijinal argv
bir değiştirilebilen bir başvuru elde etmeye çalışırken, argv[0]
"set" arıyor.
İlk tahminim, setkgs işlevi olmadığından ve getArgs işlevi değişmez bir liste döndürdüğünden, bunun Haskell'den mümkün olmamasıdır. – bheklilr
Teşekkürler. FFI kodunun üzerine dökülüyorum ve aynı sonuca vardım, ama göreceli olarak yeni olduğum için başka bir yolun olup olmadığını bilmiyordum. – aaronlevin
Bu, 5 dakika önce mümkün olduğunu bilmediğim bir şeydi, bu yüzden bir yol olabilir, ancak eğer bir yol varsa, dahili bir kütüphanede garip bir köşe işlevi içerecektir. Kullanmakta olduğunuz derleyiciye bağlı olabileceğinden GHC'ye özel kitaplıklara bakın. – bheklilr