在 Ubuntu 系統上開發 C++ 應用程式時,核心轉儲(core dump)文件的命名規則由 kernel.core_pattern 定義。若開發者希望自行生成 core 文件,但又不想自行解析該模式字串,是否有現成的 C++ API 可直接取得 core 文件名稱?
簡短答案:C++ 標準庫不提供這類功能。原因在於 C++ 設計為跨平台語言,不綁定特定作業系統或環境的底層機制。Core dump 的命名與生成屬於作業系統核心層面的行為,C++ 標準並未定義相關介面。
若需獲取 core 文件名稱,必須依賴具體平台提供的系統呼叫或工具。例如在 Linux 上,可透過讀取 /proc/sys/kernel/core_pattern 並自行解析,或使用 libc 的相關擴展函式,但這屬於平台專用 API,而非標準 C++。
kernel.core_pattern 並啟用 ulimit -c unlimited。總結:沒有通用的 C++ API,請根據目標平台(Linux、FreeBSD 等)查閱對應的系統程式設計手冊。