怎样用C语言得到一个进程的全路径
一个进程的命令行保存在文件/proc/pid/cmdline中,参数之间是字节0分隔。下面的小程序举例说明如何去读这个文件。
#include <iostream> #include <fstream>
int main(int argc, char* argv[]) { if(argc != 2) { printf("usage: %s pid ", argv[0]); exit(0); }
std::string path(argv[1]); path = "/proc/" + path + "/cmdline"; std::ifstream fin(path.c_str()); if(!fin) { std::cout << "Open /proc/" << argv[1] << "/cmdline failed! "; exit(-1); } std::string s; while (getline(fin, s, '\0')) { std::cout << s << std::endl; } }
|