2016-09-29 7 views
-3

私は実行可能なターゲットとプログレとファイルUnixで拡張子を使わずにファイルをリダイレクトする方法はありますか?例えば

file.txtなどをCプログラムを持っていることは、その拡張子なしfile.txtをを読み、受け入れるようにSTDINを作るために私のCプログラムでの方法はあります。現在、標準入力を読み込むための私のコードがある。これについては

while (scanf("%d ", &n) != EOF) 

私は< file.txtを

./progしなければならないだろう。しかし、私はこの./progに<ファイル

+1

'file.txt'の名前を' file'の名前に変更していますか? – jwodder

+1

番号。これはCがファイル名の解析をしていないためです。リダイレクトはシェルレベルで行われます。シェルは「ファイルを取り出してprogのstdinに変換する」と言っています。つまり、あなたは 'prog

+0

試しましたか?それはここに掲載するよりずっと速かったでしょう。何が起こった? – Robert

答えて

0
をしたいです

しかし、私はこの./prog <ファイル

動作しませんいいえ、やってみたいです。あなただけする必要があります明示的および使用:代わりにOSを使用してリダイレクトする、コマンドライン引数としてファイルを取り、+オープンはそれを自分で読むように

./prog < file.txt 
0

はあなたのプログラムを変更します。

あなたはあなたが必要と思うファイル名に何らかの文字列操作を行うことができます。

+0

私たちの目的の一つでもありました。私はそれを簡単にしましたが、彼の指示によれば、リダイレクションで暗黙的な拡張子を持つファイルを使用したかったようです – Jasep88

関連する問題