【发布时间】:2020-12-21 18:23:10
【问题描述】:
下面的代码适用于 /bin/ls 和其他程序,但不适用于 qemu。如何使用 popen 获取 qemu 的输出流?
我跑了qemu-x86_64 -d cpu /bin/ls 并期望得到与qemu 相同的输出,但在它之前有一个“read:”。当我运行它时,我只是控制台中的正常 qemu 输出。
int main()
{
/* Call program */
FILE* file = popen("/bin/ls", "r");
if(file == NULL)
{
perror("popen");
return 0;
}
/* output stream of program*/
char *out = NULL;
size_t outlen = 0;
/*iterate through program output stream line by line */
while (getline(&out, &outlen, file) >= 0)
{
/* print output stream */
printf("read: %s", out);
}
/* cleanup */
pclose(file);
free(out);
return 0;
}
【问题讨论】:
-
大概,qemu 不会写入标准输出。
标签: c output stdout popen qemu