2017-01-29 4 views
-5

次のシェルコマンドをC言語で使用したいと考えています。このシェルコマンドをC言語で使用できるように変換する

if uname -a | grep '10.0-RELEASE' || '10.3-RELEASE' >> /dev/null; then 

私はfreebsdのプログラムに必要です。助けてください。

+0

なぜですか?あなたは何を達成しようとしていますか? –

+0

私のプログラムはfreebsd用のlibsをインストールしますが、10.xには他のlibsがあります –

答えて

0

次のようにsystem()を呼び出すことができます。しかし、あなたのコマンドが最初に機能することを確認してください(私にとっては正しくないようです)。

if(system("uname -a | grep '10.0-RELEASE' || '10.3-RELEASE' >> /dev/null")) 
{ 
    // no matches 
} 
else // matches 
{ 
} 
+0

ありがとう –

1

libcにuname(3)関数があり、unameがC構造体(struct utsname)の形式でレポートする情報が返されます。あなたの||構文がシェルで有効ではないことに注意してください。しかし、grepは通常のC文字列比較と置き換えることができます。私はあなたが2つの文字列の比較を行うことができます10.0または10.3に一致しようとしていると思います。

関連する問題