当我执行程序./测试-debug 7 -m播放器时,我使用C语言如何获得-m -debug的参数值?
我试过:
char* name = (char*)calloc(1024,sizeof(char));
if(name){
sprintf(name, "/proc/%d/cmdline",pid);
FILE* f = fopen(name,"r");
if(f){
size_t size;
size = fread(name, sizeof(char), 1024, f);
if(size>0){
if('\n'==name[size-1])
name[size-1]='\0';
}
fclose(f);
}
}但是它只返回process.exec的名称"xargs -0 < /proc/ pid /cmdline“可以返回正确的值( mytest -debug 7 -m player ),我希望在另一个进程中获得,而不是在process.such的主要方法中,因为在进程mytest2中,我希望用pid (通过pid= getpid()和pid获取mytest进程信息,而不是获得调试值)获得我自己的进程调试值。
发布于 2016-03-07 10:23:55
来自proc(5)
命令行参数在此文件中显示为一组字符串,由空字节('\0')分隔,最后一个字符串之后还有一个空字节。
因此,这段代码应该可以工作:
for (i = 0; i < size; i++) {
if (!i)
printf("%s\n", name);
else if (!name[i - 1])
printf("%s\n", name + i);
}https://stackoverflow.com/questions/35840847
复制相似问题