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