Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在 Android/Linux 下编写一个运行系统命令的 C 程序。该命令将一些文本输出到标准输出,我试图将输出捕获到字符串或字符数组中。
例如:
system("ls");
会将当前目录的内容列出到 stdout,我希望能够以 C 语言以编程方式将该数据捕获到变量中。
我该怎么做呢?
谢谢。
你想用popen. 它返回一个流,例如fopen. 但是,您需要使用 关闭流pclose。这是因为pclose负责清理与启动子进程相关的资源。
popen
fopen
pclose
FILE *ls = popen("ls", "r"); char buf[256]; while (fgets(buf, sizeof(buf), ls) != 0) { /*...*/ } pclose(ls);