Anu*_*hab 26
没有任何通用的方法来执行此unix.
每个操作系统都有不同的处理方式,有些非常难.你提到Linux了.使用Linux,信息位于/ proc文件系统中.
要获取进程ID 9999的命令行,请读取该文件/proc/9999/cmdline
.
QJG*_*Gui 11
POSIX C不支持为通过PID获取进程名称提供标准API.
在linux中,您可以通过LINUX Proc API获取名称:/ proc/$ PID/cmdline.代码看起来像这样:
const char* get_process_name_by_pid(const int pid)
{
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);
}
}
return name;
}
Run Code Online (Sandbox Code Playgroud)