基本上,我正在寻找能够复制以下Perl代码的东西:
my $fh = new FileHandle;
$fh->open("foo |");
while (<$fh>) {
# Do something with this line of data.
}
这是在Linux的上下文中,因此特定于Windows的库将无济于事。我知道如何编写一个执行fork / exec / dup2的程序以及所有基本的shell类型爵士乐,但是有一些涉及终端的细节,我不喜欢乱搞(而且我没有副本) “UNIX环境中的高级编程”或类似的参考手册),所以我希望有人已经解决了这个问题。
答案 0 :(得分:5)
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char* argv[])
{
char c;
FILE* p;
p = popen("echo hello, world!", "r");
if( p == NULL ) {
fprintf(stderr, "Failed to execute shell with \"echo hello, world!\"");
exit(1);
}
while( (c = fgetc(p)) != EOF ) {
fputc(toupper(c), stdout);
}
pclose(p);
return EXIT_SUCCESS;
}
答案 1 :(得分:2)
也许popen是您的解决方案?