2011-07-05 5 views
2

私はargvからコマンドライン引数を読み取るCプログラムを持っています。プログラムのコマンドライン引数としてファイルの内容をリダイレクトするパイプを作ることは可能ですか?ファイルからコマンドラインパラメータを渡す方法

0 0.2 302 0 

そして、私は私のプログラムは、と呼ばれるようにしたい:私はこの内容でファイルarguments.datがあると仮定し

./myprogram 0 0.2 302 0 

私は次のことを試してみました:成功せず

cat arguments.dat | ./myprogram 

答えて

10

xargsはあなたの答えです:あなたのシェルがそれをサポートしていない場合

./myprogram $(<arguments.dat) 

ほとんどのシェルでは
cat arguments.dat | xargs ./myprogram 
6

、あなたは$(<filename)と、コマンドラインにファイルの内容を挿入することができます古い方法の1つが機能します:

./myprogram $(cat arguments.dat) 
./myprogram `cat arguments.dat` # need this one with csh/tcsh 

oコマンドライン引数とファイル入力の違いを知っていますか?なぜコマンドライン引数をプログラムにパイプするのですか?)

+0

"古い方法"は引数を分割しません。ファイルからのすべてのデータは単一の引数としてロードされます。 – osgx

+0

@osgx:それは単に真実ではありません。それを単一の引数にするには、二重引用符で囲む必要があります。 – caf

関連する問題