![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?e8efa67)
system関数で
int main(){
int i;
i = system("./test.exe");
printf("i=%08x", i);
}
として、test.exeを呼び出しています。
test.exeでは、
int test(){
clock_t a, b;
int i, j;
j = 0;
a = clock();
for (i=0;i<0xFFFFFF;i++) j++;
b = clock();
return (int) (b-a);
}
int main(){
int i;
i = test();
return i;
}
として、iの値を戻しています。
試したところでは、i = 63が戻り値となるはずですが、
0x3f00という値がsystem関数から渡されています。
systemだと、シェルも動作できるのでこの戻り値はOS(or cygwin)からの戻り値になると考えています。この理解で正しいでしょうか?
また、この場合のi = 63を戻す方法はあるのでしょうか?
環境はXP Home + cygwin + gcc4.3.0です。
No.1ベストアンサー
- 回答日時:
>systemだと、シェルも動作できるのでこの戻り値はOS(or cygwin)
>からの戻り値になると考えています。この理解で正しいでしょうか?
多分違う。
system() は結局、内部でシェルを fork() してコマンドを実行、そのプロセスの終了ステータスを戻しているだけだったかと。
WEXITSTATUS(status) マクロとかを使えばよいのでは?
この例の場合はむしろ自前で fork() した方が早いと思う。
有難うございます。
forkは初耳だったもので、調べてみました。
fork: 子プロセスを生成
exec: プロセスを実行
という感じのようですね。
http://www.slogical.co.jp/tech/unixc_forkexec.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
コマンド(例えばls)の出力結果を文字列で取得するプログラムの作成方法
C言語・C++・C#
-
system関数がうまくいかない
C言語・C++・C#
-
system関数のエラー検出
C言語・C++・C#
-
-
4
system関数(Windows)の戻り値!!
C言語・C++・C#
-
5
Cからシェルを起動し返り値をハンドリングする方法
C言語・C++・C#
-
6
ネットワークにつながっているかの確認
UNIX・Linux
-
7
UNIX & Linux の標準出力で得たデータを、C言語のローカル変数に取り込むには?
C言語・C++・C#
-
8
system関数でのシェル起動について
C言語・C++・C#
-
9
C言語のプログラム中に使うsystem()関数に変数を使う場合
C言語・C++・C#
-
10
echoとsystem関数について
C言語・C++・C#
-
11
C++でシェルを起動
C言語・C++・C#
-
12
構造体のメンバをfor文で回したい
C言語・C++・C#
-
13
UNIX-Cのsystem関数でエラーを捕捉したい
C言語・C++・C#
-
14
Linuxでのスレッド間メッセージについて
C言語・C++・C#
-
15
C ファイル出力で、フォルダがない場合でも作成する方法
C言語・C++・C#
-
16
Windowsでのfork方法
C言語・C++・C#
-
17
コマンドを実行してコマンドライン文字列を読み込む
C言語・C++・C#
-
18
UTF-8で5~6バイトになる文字コード
その他(プログラミング・Web制作)
-
19
外部依存関係について
C言語・C++・C#
-
20
INIファイルからのデータ読込みについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
c言語の配列を使ってサイコロを...
-
ラップ関数とはどんなものですか?
-
C言語 エラーの原因がわからな...
-
return 1L
-
C言語で行列の積を計算できるよ...
-
if と配列の組み合わせ
-
C言語で分からないところがあり...
-
「指定されたキャストは有効で...
-
C++でvectorにテキストファイル...
-
複数桁10進数の*桁目だけを抽出...
-
「{ } で囲むだけ」は正しい?
-
C言語に関する質問です フィボ...
-
数字列を3桁ごとにカンマで区切...
-
C言語での平滑化フィルタ
-
std::set<int> で、ある値が何...
-
実数の整数部,小数部の取得
-
入力を待たずにstdinの監視をし...
-
【至急】プログラムにエラーが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
c++でテンプレートのコードでわ...
-
(int *)の意味
-
ラップ関数とはどんなものですか?
-
数字列を3桁ごとにカンマで区切...
-
c言語のリダイレクトによる円...
-
比較回数と交換回数表示について
-
実数の整数部,小数部の取得
-
if と配列の組み合わせ
-
構造体の勉強中です 合計点の高...
-
PowerShellがうまくいかない
-
c言語の配列を使ってサイコロを...
-
課題でつまってます・・・
-
C言語のサイコロシミュレート
-
エラー 添字が付けられた値が、...
おすすめ情報