Возможно ли получить доступ к исходному указателю argv
изнутри Haskell main
?Доступ к оригинальному указателю argv от Haskell
Моим вариантом использования является то, что я хочу удалить параметры командной строки после запуска приложения, чтобы их нельзя было читать через ps
. Есть несколько способов сделать это, но все требуют манипулирования оригиналом argv
.
Я могу это сделать, если я пишу C оболочку и вызвать hs_init
оттуда (впоследствии отводом вокруг с argv
ала here), но было бы лучше сделать это с Haskell.
Спасибо!
PS - этот вопрос отличается от duplicate, поскольку дубликат использует prctl
, который, насколько я могу судить, позволяет вам изменять имя процесса. Кроме того, дубликат ищет «установить» argv[0]
, тогда как я пытаюсь получить изменчивую ссылку на оригинал argv
, используемый для вызова программы.
Моя первоначальная догадка заключается в том, что это невозможно из Haskell, поскольку функция 'setArgs' не существует, а' getArgs' возвращает неизменный список. – bheklilr
Спасибо. Я проливал код FFI и пришел к такому же выводу, но, поскольку я относительно новичок в этом, я не знал, есть ли другой способ. – aaronlevin
Это то, о чем я даже не знал, было возможно 5 минут назад, так что может быть и так, но если есть способ, в него войдет какая-то странная функция угла во внутренней библиотеке. Посмотрите в специфические библиотеки GHC, так как это, вероятно, будет зависеть от того, какой компилятор вы используете. – bheklilr