如何使用c++代码设置核心文件名
How to set core file name using c++ code?
如何在linux下使用c++代码设置核心文件名?
Linux dump core file on binary crash,是否可以设置core dump file的文件名
在我的系统上(Ubuntu 10.04内核2.6.32),man core
没有给出可以在逐个进程的基础上选择命名的指示。但是,可以通过修改/proc/sys/kernel/core_pattern
:
默认情况下,core转储文件命名为core,而core转储文件命名为core
/proc/sys/kernel/core_pattern
文件(从Linux 2.6和2.4.21开始)可以设置为定义用于命名核心转储文件的模板。的模板可以包含%说明符,这些说明符由创建核心文件时使用以下值:%% a single % character %p PID of dumped process %u (numeric) real UID of dumped process %g (numeric) real GID of dumped process %s number of signal causing dump %t time of dump, expressed as seconds since the Epoch (00:00h, 1 Jan 1970, UTC) %h hostname (same as nodename returned by uname(2)) %e executable filename (without path prefix) %c core file size soft resource limit of crashing process (since Linux 2.6.24)
模板末尾的单个
%
从核心中删除如%
后跟任意字符的组合除了上面列出的。模板中的所有其他字符成为核心文件名的文字部分。模板可能包括'/'
字符,这些字符被解释为分隔符目录名称。生成的核心文件名的最大大小128字节(2.6.19之前的内核为64字节)。默认值在这个文件中是"core"。为了向后兼容,如果/proc/sys/kernel/core_pattern
不包括"%p"
和/proc/sys/kernel/core_uses_pid
(见下文)非零,然后是.PID
将被附加到核心文件名。
我相信这个页面大致描述了您正在寻找的内容。您可以通过更改proc
文件系统中的魔法条目来设置核心文件的命名方式:
echo "pattern" > /proc/sys/kernel/core_pattern
其中pattern是类似printf
的模式字符串,在链接页面上记录。从c++中执行此操作只需要使用常规机制打开和写入该文件。但是,你必须是root才能写core_pattern
- 从命令行c++发送文本文件名
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 在c++中初始化矩阵时出现分段错误(核心转储)
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- MPI突然停止了对多个核心的操作
- 在多个核心中处理一个HTTP请求
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 运算符继承和 cpp 核心准则 c.128 的问题
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 浮点异常(核心转储)#694457
- 在Visual Studio 2019中保存时ReadDirectoryChangesW文件名的问题
- C++:在Windows中浏览名称中带有点的文件名
- 分段错误(核心转储)但无法弄清楚
- 如何使用c++代码设置核心文件名