【发布时间】:2020-03-23 07:15:11
【问题描述】:
我必须在 C 语言中使用 popen() 显示 Linux(更具体地说,Ubuntu 19.10)目录中的所有文件和子目录。相关代码如下。我调试这段代码时的问题是,“list”变量最多只包含第一个“\n”转义字符,即“.:\n”。如何绕道让 popen() 输出包括转义序列字符在内的所有字符串?
#include <stdio.h>
int main()
{
FILE *read_file;
char list[1000];
read_file = popen("ls -R","r");
fgets(list, 1000, read_file);
pclose(read_file);
printf("%s", list);
return(0);
}
【问题讨论】:
-
在循环中使用
fgets,直到它返回NULL? -
呃,为什么不用
opendir()/readdir()/lstat()/etc 全部用 C 语言完成呢? (还有scandir(),但它不是递归的AFAIK)。