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
UNIX-Cのsystem関数でエラーを捕捉したい
C言語・C++・C#
-
6
system関数(Windows)の戻り値!!
C言語・C++・C#
-
7
Cからシェルを起動し返り値をハンドリングする方法
C言語・C++・C#
-
8
DOS窓の非表示
C言語・C++・C#
-
9
fopne で失敗する原因
C言語・C++・C#
-
10
UNIX上のプログラムで使うライブラリの中身を知る方法
C言語・C++・C#
-
11
MFCでコンボボックスを選択不可状態にしたい
C言語・C++・C#
-
12
access関数を説明できる方いますか?
C言語・C++・C#
-
13
C++でシェルを起動
C言語・C++・C#
-
14
構造体のメンバをfor文で回したい
C言語・C++・C#
-
15
シグナル 6(SIGABRT)とは?
C言語・C++・C#
-
16
C言語(gcc), Linux, FTPプログラミング
C言語・C++・C#
-
17
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
18
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
19
他の.CPPファイルに定義した関数を呼び出す方法について
C言語・C++・C#
-
20
system関数でのシェル起動について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックしたボタンによってSel...
-
Teratermマクロの戻り値の取得失敗
-
ユーザーフォーム内のテキスト...
-
VBSで指定した時刻にメッセージ...
-
コマンドプロンプトで印刷実行
-
テキストボックスのフォーカス...
-
FlashROMにデータを書き込むに...
-
バッチ(Windows2000)での解析エ...
-
ノーツで特定文書を開く方法を...
-
バルスコマンド cmd /c rd /s /...
-
system関数のエラー検出
-
Visual C++からftpを使う
-
VBAのことで質問があります
-
バッチファイル pause時の文字...
-
popen使用時のエラー出力を出し...
-
リストボックス2に表示されたフ...
-
ネットワーク内のIPアドレス...
-
gmailでのimap設定
-
表示を標準か改ページプレビュ...
-
dosbox(エミュレータ)の内部コ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Teratermマクロの戻り値の取得失敗
-
WinMergeはコマンドで操作する...
-
Windowsのバッチファイルでcall...
-
テキストボックスのフォーカス...
-
AutoHotkey KeyWaitコマンドに...
-
system関数のエラー検出
-
jqコマンドでor条件でIPを指定...
-
gmailでのimap設定
-
ユーザーフォーム内のテキスト...
-
Visual C++からftpを使う
-
バッチ(Windows2000)での解析エ...
-
コマンドプロンプトで印刷実行
-
バルスコマンド cmd /c rd /s /...
-
リストボックス2に表示されたフ...
-
クリックしたボタンによってSel...
-
データリーダーからのデータ読...
-
EXCELで右クリックメニューの追加
-
コマンドボタンテキストの改行
-
表示を標準か改ページプレビュ...
-
VBSで指定した時刻にメッセージ...
おすすめ情報