You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Common Lisp中可移植地以指定错误码退出进程?

在Common Lisp中可移植地退出进程并返回指定退出码

要实现类似Python os.exit(15) 的可移植退出功能,最便捷的方式是使用UIOP库——它是ASDF的核心组件,几乎所有现代Common Lisp实现(如SBCL、CCL、CLISP等)都默认自带,无需额外安装,兼容性和bordeaux-threads处于同一层级。

直接调用uiop:quit函数并传入退出码即可:

(uiop:quit 15)

如果不想依赖ASDF/UIOP,也可以自己封装一个针对不同实现的条件化函数,手动适配各Lisp实现的退出接口:

(defun exit-with-code (code)
  #+sbcl (sb-ext:exit :code code)
  #+ccl (ccl:quit code)
  #+clisp (ext:quit code)
  #+allegro (excl:exit code)
  #+lispworks (lw:quit :status code)
  ;; 对不支持指定退出码的实现提供降级方案
  #-(or sbcl ccl clisp allegro lispworks) (quit))

调用自定义函数的方式:

(exit-with-code 15)

相比自定义封装,更推荐UIOP方案——它已经维护了全平台/全实现的兼容性,无需你自己跟进各实现的API变更。

内容的提问来源于stack exchange,提问作者djhaskin987

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 09:13:13