- 締切済み
popen使用時のエラー出力を出さないようにしたい (Solaris C言語)
AAA/a というファイルがなかった場合 (1)poepn("ls AAA/a", "r" ); (2)poepn("ls AAA*/a", "r" ); を実行した時のそれぞれの出力メッセージは (1)AAA/a: ファイルもディレクトリもありません。 (2)/bin/ls: No match. となります。そこで、2> /dev/null を付け足して実行すると、(1)のエラーメッセージは消えるんですが、(2)の場合のエラーメッセージは出てしまいます。 (1)の場合も(2)の場合もエラーメッセージを出さないようにする方法ってありますか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- shige_70
- ベストアンサー率17% (168/946)
回答No.1
私の所では再現できませんでした( (2)でも(1)と同じ結果になる)。 回避策は、目的によって異なると思いますが、、、 一般的に考えられる方法としては、 ・popen(),pclose() の代わりに pipe(),fork(),execlp()等を使う ・popen()のコマンドの出力は一旦バッファにため込み、pclose()の返り値を見てから処理する などがあると思います。