- PR -

C言語で戻り値の制御

1
投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2006-08-24 18:34
お世話になります。

以下のようなCのプログラムを作成しました。

---
unsigned int main( void )
{
unsigned int ret = 0;

ret = 0x0080;
// ret = 0x0100;

printf("ret:%d", ret);
return( ret );
}

---
AIX5.2で上記を実行したところ

ret = 0x0080;
の場合は
# ./a.out
ret:128
# echo $?
128
#
で戻り値が128ですが

ret = 0x0100;
の場合は
# ./a.out
ret:256# echo $?
0
#
で戻り値は0です。

どうやら、255以上の数値は制御できないような
気がするのですが

ret = 0x0100;
ret = 0x0200;
ret = 0x0400;
ret = 0x0800;
といった具合に戻り値を制御する事は可能でしょうか?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-08-24 18:51
OSが扱っているリターンコード自体が0〜255だからでしょう。

ところで、unsigned int main(void)は、個人的にはだいぶ気持ちが悪いです。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-08-25 01:39
引用:

mioさんの書き込み (2006-08-24 18:51) より:
OSが扱っているリターンコード自体が0〜255だからでしょう。


おまけ。man で exit(3) や _exit(2) を引いてみると、書いてあるかも。

引用:

ところで、unsigned int main(void)は、個人的にはだいぶ気持ちが悪いです。


ですね。
1

スキルアップ/キャリアアップ(JOB@IT)