在 linux 中打开文件时遇到问题

Trouble opening a file in linux

我正在尝试在 linux 系统上打印 运行 进程,但是在尝试这样做时出现分段错误。这是我的代码:

FILE *ps;
char line[256];
char * command = "ps";  
ps = fopen(command, "r");
if(ps == NULL){
    perror("Error");
}
while(fgets(line, sizeof(line), ps)){
    printf("%s", line);
}
fclose(ps);

奇怪的是,当我使用相同的代码但将 "ps" 替换为“/proc/meminfo”或其他文件时,它会正确输出。在此先感谢您的帮助。

尝试对 运行 命令使用 popen 和 pclose 而不是 fopen 和 fclose

char line[256];
FILE *ps = popen("ps", "r");
if(ps == NULL){
    perror("Error");
}

while(fgets(line, sizeof(line), ps)){
    printf("%s", line);
}

pclose(ps);