1

重複の可能性:
ac プログラムでシェル コマンドを実行する

C プログラムで echo を呼び出し、その出力をファイルにリダイレクトしたいと考えています。しかし、C プログラムで unix コマンドを呼び出す方法がわかりません。どんな助けでも大歓迎です。

ありがとう、アーシッシュ

4

4 に答える 4

4
#include <stdlib.h>

int main() {
    system("echo test > filename");
    return 0;
}

これを行う簡単な方法です。プロセスをさらに制御したい場合は、fork/execを調査する必要があります。

ただし、C stdlib ファイル関数を使用して簡単にファイルを書き込むことができます。これは、新しいプロセスを生成するよりもはるかに軽量です。

于 2012-08-14T12:57:06.443 に答える
3

出力を取得するためにこのプログラムを具体的に実行したい場合は、system() ではなくpopen()が必要です。

于 2012-08-14T15:16:38.557 に答える
3

systemC で UNIX コマンドを実行するために使用する代替手段は、 execlpです。

それはすべて、それらをどのように使用するかによって異なります。ユーザー入力が必要な場合は、 execlp / execveを使用することをお勧めします。それ以外の場合systemは、C プログラムで UNIX を動作させるための迅速で簡単な方法です。

リダイレクトには、パイプを使用できます。開いたファイルにリダイレクトするデータを確認するのに役立ちます。設定するだけでsystem、希望する方法で設定または最適化するための実際のオプションはありません。

于 2012-08-14T13:05:05.247 に答える
1

システム関数を使用してこれを行うことができます。

#include <stdlib.h>

int main() {
  system("echo 'words' > file");
  return 0;
}

または fopen、printf、fclose を使用します。

于 2012-08-14T12:55:53.793 に答える