在C/C++中是否有办法找到当前执行程序的位置(完整路径)?
(问题argv[0]在于它没有给出完整的路径.)
可能重复:
如何在C中查找可执行文件的位置
我希望一个可执行文件能够发现自己的路径; 我有一种感觉,答案是"你不能这样做",但我希望这一点得到确认!
我不认为我可以使用getcwd(),因为我可能不会从同一目录执行它.我不认为我可以使用argv[0],因为它基于用于执行它的字符串.还有其他选择吗?
合理
真正的问题是我想在文件系统上放置一个可执行文件,并在其旁边放置一个默认配置文件.我希望可执行文件能够在运行时读取其配置文件,但我不想将此位置硬编码到可执行文件中,也不希望用户必须设置环境变量.如果对这种情况有更好的解决方案,我全都耳朵......
我做节目,如果页面错误发生在一些流程,可以看到,我的方法做,这是获得所有进程的PID和看到rss,maj_flt寻求在每一个等/proc/[PID],检查是否有在总的变化maj_flt。
但为了得到所有正在运行的进程的PID的,我需要直接从我的C程序得到这些,而无需使用像现有的shell命令ps,top等等。
有谁知道正在运行的 PID 数据存在于/proc何处或其他地方?或者如果有另一种方法可以做到这一点,比如通过我的 C 程序中的系统调用函数来获取它?