Как определить местонахождение исполняемого дампа

Я делаю дамп нового интерпретатора, написанного на CL с помощью SBCL, и мне нужно определить местоположение двоичного файла (исполняемого дампа sbcl), чтобы настроить некоторый путь поиска. Есть способ узнать как? Я пробовал *core-pathname*, но, похоже, он не определяется в исполняемых дампах.


person Norbert Preining    schedule 24.09.2014    source источник
comment
Когда я просматривал документы, *core-pathname* — это то, что я нашел в sbcl.org/1.0/manual/Saving-a-Core-Image.html, поэтому сначала я подумал, не столкнулись ли вы с ошибкой, но похоже, что ее будет сложно не заметить . Затем, заметив, что вы упомянули исполняемые дампы, мне интересно, нужно ли вам просто делать то же самое, что и другие приложения, и универсального ответа нет. (Например, см. Получить путь к исполняемому файлу.)   -  person Joshua Taylor    schedule 28.10.2014
comment
Также Как найти путь, по которому запущен текущий процесс/исполняемый файл?, в котором говорится, что нужно посмотреть argv[0]. В SBCL это можно сделать с помощью *posix-argv*; см. 2.4.4.1 Протокол командной строки в стиле Unix .   -  person Joshua Taylor    schedule 28.10.2014
comment
Если вы хотите быть переносимым с другими реализациями, вы можете взглянуть на Доступ к разделу аргументов командной строки из Common Lisp Cookbook.   -  person Joshua Taylor    schedule 28.10.2014


Ответы (1)


Хорошо, после некоторого копания я думаю, что нашел ответ сам! Это:

sb-ext:*core-pathname*

который работает! Странно, что это не упоминается в руководстве SBCL.

person Norbert Preining    schedule 29.10.2014