popen
将指定命令的o / p存储到文件中。我怎样才能获得类似的功能,但将o / p转换为变量(即在char *中)?
答案 0 :(得分:1)
不,popen()
不会将输出存储到文件中。它指定流,可能表示磁盘上的文件,但也可能是管道或插座。流比文件更抽象。
答案 1 :(得分:1)
我找不到任何在变量中返回o / p的东西。这有点意义,因为一些命令'o / p可能很大,所以为了使行为一致,o / p存储在文件中。我实际上最终读取了popen
返回的文件。
感谢您的帮助。
答案 2 :(得分:0)
您可以使用您控制的流替换已启动命令的STDOUT和STDERR
答案 3 :(得分:0)
是否要从C程序运行unix命令,并存储输出?
如果是,那么序列就是调用FILE* pipe = popen("wc -l filename", "r");
,然后从FILE * pipe
读取,就像从使用fopen
打开的文件中读取一样。也就是说,使用fgets
或fscanf
等函数来读取输出,就像命令输出在文件中一样。