2016-11-06 2 views
0

Cコードのパイプパラメータにはどのようにアクセスできますか?bash + cパイプパラメータ

test.cの

int main(int argc, char *argv[]) { 
    int i = 0; 
    for (i = 0; i < argc; i++) { 
     printf("argv[%d] = %s\n", i, argv[i]); 
    } 
} 

バッシュ:

cat file.txt | ./test 

それはちょうど最初の引数argv[0] = ./testを印刷します。 Cコード内のfile.txtの内容にパラメータとしてアクセスするにはどうすればよいですか?

+1

は '男xargs'を行い、' xargs'を使用してみてください。 –

+0

ありがとうございますが、あまりにも多くのパラメータがあります。 – dontHaveName

答えて

0

パイプでは、プログラムは標準入力でfile.txtの内容を取得します。だから、stdinから読んでください。たとえば、あなたは、行ずつを読み取るためにfgets()を使用することができます。

#include <stdio.h> 

int main(int argc, char *argv[]) { 
    int i = 0; 

    char line[1024]; 
    while(fgets(line, sizeof line, stdin)) { 
    printf("%s", line); 
    } 
}