![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
atonさんの仰る通り、shのステータスでしょう。
Solarisのmanページには、
"If the fork() or exec() fails, system() returns
a value of -1 and sets errno."
とありますし、Linuxでは、
”execve() が /bin/sh を呼び出すのに失敗した時には 127 を、
別のエラーがあった時には -1 を、それ以外の時はコマンドの
返り値を返す。”
とあります。
このように、system()は返り値1に特別な意味を
もたせてないですから、system()から1が返った
ということは、shか或はshが呼び出したコマンドから
1が返ったということでしょう。
問題は、shはCommand not foundなどの理由で失敗した時に
1を返しますが、他の大部分のbuilt-inコマンドも失敗した時には
1を返す、ということです。このため、shで失敗したのか、
shから呼ばれたコマンドで失敗したのかは区別がつきません。
shもその他のコマンドも成功したら0を返すので、
「0 が成功でそれ以外は失敗として扱う」というのが
正解だと私も思います。
No.1
- 回答日時:
私も調べてみましたが,いまいちはっきりわからなかったので,以下想像です。
manの記述は,fork()またはexec()で失敗したときのみ-1を返すというようにも読めるので,この場合はshの終了ステータスが返ってきてるのではないでしょうか? shのmanページでは,0以外は何らかのエラーということのようです。
あるいはsystem()と同じライブラリー(stdlib.h)に定義されている EXIT_FAILURE が返ってきているのかもしれません。ちなみにこの場合もうまくいったことを表すと思われる EXIT_SUCCESS の値は0です。
というわけで,あまりお役に立ちそうもない情報ですが,いずれにせよ 0 が成功でそれ以外は失敗として扱うことにしてみてはいかがでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- UNIX・Linux Fedoraのupgradeで、libruby.so.3.0()がinstallできないという 1 2023/03/30 16:42
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- 英語 It has an extremely popular e-mail system, reporte 1 2022/11/04 19:41
- 英語 『G19 Gen5 MOS - Modular Optic System for Gen5』 の 『 1 2023/03/05 13:37
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- 英語 Modular Optic System (MOS)とは、一体どの様な物の事なのかを教えてください。 1 2023/03/03 09:52
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
system関数がうまくいかない
C言語・C++・C#
-
systemの戻り値を取得する方法
C言語・C++・C#
-
コマンド(例えばls)の出力結果を文字列で取得するプログラムの作成方法
C言語・C++・C#
-
-
4
system関数を使用してsuコマンドを実行したいのですが
C言語・C++・C#
-
5
system関数(Windows)の戻り値!!
C言語・C++・C#
-
6
UNIX-Cのsystem関数でエラーを捕捉したい
C言語・C++・C#
-
7
system関数でのシェル起動について
C言語・C++・C#
-
8
Cからシェルを起動し返り値をハンドリングする方法
C言語・C++・C#
-
9
fopne で失敗する原因
C言語・C++・C#
-
10
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
11
FTPコマンドの戻り値について
その他(OS)
-
12
シェルスクリプトでFTPの実行結果を取得するには
その他(プログラミング・Web制作)
-
13
UNIX上のプログラムで使うライブラリの中身を知る方法
C言語・C++・C#
-
14
CPコマンドでファイルがコピーできない
その他(開発・運用・管理)
-
15
戻り値を返す関数の前に(void)を付ける
C言語・C++・C#
-
16
ftpコマンドの戻り値をチェックしたい
その他(プログラミング・Web制作)
-
17
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
18
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
19
他の.CPPファイルに定義した関数を呼び出す方法について
C言語・C++・C#
-
20
Linux shell ftp 転送 エラー制御
UNIX・Linux
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Teratermマクロの戻り値の取得失敗
-
Windowsのバッチファイルでcall...
-
Visual C++からftpを使う
-
シリアル通信でのread関数の戻り値
-
VBで、このようなことはどうや...
-
コマンドプロンプトでサービス...
-
クリックしたボタンによってSel...
-
データリーダーからのデータ読...
-
テキストボックスのフォーカス...
-
Office 2011 VBA フォルダ作成
-
バルスコマンド cmd /c rd /s /...
-
コマンドボタンテキストの改行
-
AutoHotkey KeyWaitコマンドに...
-
telnetで接続した先のコマンド...
-
GP-IB通信を別PCでモニタしたい
-
cisco2600ルータについて
-
VBで定期的にタイムサーバに時...
-
C# のスレッドに、上位から値を...
-
ExcelVBA WorkSheet上の全てのC...
-
バッチ(Windows2000)での解析エ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Teratermマクロの戻り値の取得失敗
-
テキストボックスのフォーカス...
-
Windowsのバッチファイルでcall...
-
Visual C++からftpを使う
-
system関数のエラー検出
-
データリーダーからのデータ読...
-
コマンドプロンプトで印刷実行
-
バッチ(Windows2000)での解析エ...
-
ユーザーフォーム内のテキスト...
-
gmailでのimap設定
-
FlashROMにデータを書き込むに...
-
ネットワーク内のIPアドレス...
-
コマンドプロンプトでサービス...
-
C言語のコマンドの"flag"って何...
-
VBで定期的にタイムサーバに時...
-
リストボックス2に表示されたフ...
-
コマンドボタンテキストの改行
-
ExcelVBA WorkSheet上の全てのC...
-
OUTLOOKで受信メールを開くとテ...
-
jqコマンドでor条件でIPを指定...
おすすめ情報