一个进程的命令行保存在文件/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;
}
}
#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;
}
}