讓我們說,cmd1在標準輸出上打印一些東西。我怎樣才能用C中的cmd1捕獲它,使得cmd1 | cmd2的作品。從C中的函數捕獲結果(cmd1 | cmd2)
即
cmd1{
fprintf(stdout, "Hello");
}
cmd2 : should take "hello" and only print "hel".
讓我們說,cmd1在標準輸出上打印一些東西。我怎樣才能用C中的cmd1捕獲它,使得cmd1 | cmd2的作品。從C中的函數捕獲結果(cmd1 | cmd2)
即
cmd1{
fprintf(stdout, "Hello");
}
cmd2 : should take "hello" and only print "hel".
要啓用流水線操作,CMD2應該stdin
讀取。
例如,由於fgets()
從stdin
讀取,你可以這樣做:
#include <stdio.h>
int main() {
char buf[1024];
while (fgets(buf, sizeof(buf), stdin)) {
printf("%.*s\n", 3, buf);
}
return 0;
}
如果輸出在多行上,那麼該怎麼辦呢?line1:hello,line2:hello,line3:hello。我只想打印前兩行,但都是「hel」 – user461316 2011-03-03 03:50:22
這聽起來像是一個不同的問題。我的答案是否滿足*這個問題? – 2011-03-03 03:54:47
標準輸出如何與其他程序交互無關使用C - 這是操作系統。然而,每一個操作系統上我用打字
cmd1 | cmd2
將CMD1的標準輸出發送到CMD2的標準輸入。
如果這不起作用,那麼你可能需要刷新你的cmd1程序中的緩衝區。 (這取決於很多東西......但試試吧。)
cmd1和cmd2函數是在同一個程序中,還是他們是命令行程序? – Satya 2011-03-03 03:44:55