execvp() を使用して特定のコマンドを実行する小さなプログラムを実装しています。リダイレクトを使用しない場合は正常に動作しますが、次のようなコマンドを実行すると:
cat file1.txt > redirected.txt
cat は次のエラー メッセージを出力し、失敗します。
cat: >: No such file or directory
cat: redirected.txt: No such file or directory
私はいくつか掘り下げましたが、シェルで実行されないため、おそらく execvp() はリダイレクトを許可されていないのではないかと考え始めています。この制限を回避するには、リダイレクトが発生するタイミングを手動で選択し、fork/exec コードでパイプを使用する必要があるということですか? execvp() を使用するよりも良い方法はありますか?
ありがとう!