• ベストアンサー

tarコマンドのエラー

プログラム(C)からtarコマンドを発行した際に正常終了したか否かを判別したいのですが方法はありますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

> C言語だとどのように記述すれば > プロセスの終了値が取得できるのでしょうか? へ? systemじゃダメかなぁ? う~ん・・・・分かった。じゃあとりあえずサンプルを書いてあげよう。 #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int i; i = system("tar"); printf("result of system() is %d\n", i); printf("return code is %d\n", i >> 8); return 0; } こぴぺで完全に動作するはず。

AXL122
質問者

お礼

anmochiさんありがとうございます。 サンプルソースまであげて頂き大変参考になりました。 早速開発環境で試してみます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 Linuxでは正確に分からんが、多分こういうコマンドは1バイトの値を残して終了する。  なので、プログラム(C)の言語にもよるが(ひょっとしてカッコシーってC言語って意味?)プロセスの終了値を取得する方法が分かれば後は簡単。  ちなみにbashでtarの終了値を取得するには$?を使う。 $ tar (引数無し) tar: オプションがどーのこーの $ echo $? 2 $ tar czf etc.tar.gz -C / etc $ echo $? 0 Vine3.1ではこんな感じになる。  これまた一般的にこれらのコマンドは正常終了が0で以上終了がそれ以外だ。

AXL122
質問者

お礼

回答ありがとうございます。 慌てて書いたので解かり難くてすいません。 (C)はC言語の意味で書きました… 素人で申し訳ないですが、C言語だとどのように記述すればプロセスの終了値が取得できるのでしょうか? よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A