2016-03-22 2 views
1

私は、「システム」APIは、今 私はexecutabletoで代わりに(recv.mailという名前の)ファイルのバッファを生成し出力をリダイレクトしたい場合があり、私のCプログラムでシェルコマンドを実行するために呼び出すシェルコマンドとしてexeに入力を渡している間にファイルをバッファに置き換えることは可能ですか?

を使用しています私は、ファイルへの出力を書き込む方法の例:

cmd[] = "mda "/bin/sh -c 'cat > recv.mail'"; 
system (cmd); 

は同様に私はバッファから取られた入力を持つファイル(SEND.MAIL)から取られた入力を交換したいです。

私は、ファイルからの入力を取る方法の例:

cmd[] = "msmtp < cat send.mail"; 
system (cmd); 

注:send.mailrecv.mailファイルは、データをフォーマットしました。

パイプはより良い代替品ですか? 誰かが別の方法を提案できますか?

+0

あなたの "ファイルからの入力を取る" の例では、ファイルからの読み込みいわゆる「猫」。私はそれがあなたが意味するものだとは思わない。 –

答えて

2
  1. popen/pcloseあなたがやりたいことがあります。

    再び
    FILE *f = popen("program to execute", "r"); 
    if (NULL != f) 
    { 
        char buffer[128]; 
        while (fgets(buffer, sizeof buffer, f) 
        { 
         printf("Read from program: '%s'\n", buffer); 
        } 
        pclose (f); 
    } 
    
  2. popen/pcloseを:

    FILE *f = popen("program to execute", "w"); 
    ... 
    
関連する問題