最可靠的是/proc/self/cmdline首项:内核维护的真实启动命令行,以null字节分隔,首段即进程名(无路径),需二进制读取并截取至首个 。

Linux 下用 /proc/self/cmdline 读取进程名最可靠
Linux 没有统一的“进程名”概念,argv[0] 可被任意修改,而 /proc/self/cmdline 是内核维护的真实启动命令行,首项(null 分隔)通常就是你想要的进程名。注意它不带路径,且以 null 字节结尾,不是标准 C 字符串。
实操建议:
- 用
std::ifstream以std::ios::binary模式打开/proc/self/cmdline - 读取全部内容后,用
std::string::c_str()获取首段(遇到第一个
