OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

system関数(Windows)の戻り値!!

  • すぐに回答を!
  • 質問No.238535
  • 閲覧数1392
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 36% (138/382)

こんにちは。
皆さんのお知恵をお借りしたいとおもいます。

現在Windows NT & VC++ でプログラムの勉強をしています。

例えば、aaa.cppのソース内で、exe(例えば、c:\work\sample.exe)を実行させて
成功したかどうか念の為、確認を行いたいと考えております。


---aaa.cpp---
int rtn_flg; /* system関数の戻り値 */
(略)
rtn_flg = system("c:\\work\\sample.exe");

/* sample.exeが正常に動作したか確認したい */


-------------


上記のようなプログラムでsample.exeが正常に実行できたか、確認したいとかんがえております。

正常に実行できなかった場合というのは、たとえは『実行ファイルが存在しません。』などというシステムエラーです。
(sample.exe内で意図的にエラーをリターンしているといういみではありません。)

実際上記のプログラムを実行すると、正常にexeが動作したときも、例えばsample.exeの名称をssaammppllee.exeと実際にありえない名称にしても
rtn_flg には"0"が返ってきます。

rtn_flgでexeが正常に動作したか、そうでないか確認できないものでしょうか?

大変わかりづらい質問でご面倒ですが、宜しくお願い致します。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 34% (574/1662)

system()がもともとそういう仕様の関数なので, プログラムの実行をsystemで行っている限りはできません。 別の方法で実行するしかないでしょう。 exec()等を調べてみてください。
system()がもともとそういう仕様の関数なので,
プログラムの実行をsystemで行っている限りはできません。

別の方法で実行するしかないでしょう。
exec()等を調べてみてください。


  • 回答No.2
レベル10

ベストアンサー率 61% (70/113)

Borland系のコンパイラではerrnoで判別できます。 MS系のコンパイラにも該当するものがあるのではないかと思うのですが... ヘルプ等を見てはいかがでしょう。 # WindowsAPIを使用するなら、CreateProcess()のエラーはGetLastError()で取得できます。
Borland系のコンパイラではerrnoで判別できます。
MS系のコンパイラにも該当するものがあるのではないかと思うのですが...
ヘルプ等を見てはいかがでしょう。

# WindowsAPIを使用するなら、CreateProcess()のエラーはGetLastError()で取得できます。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ