>>949 例えば、このスクリプト内ではプログラムの返り値を使います。
#!/bin/sh
i=100
while [ $i -lt 253 ]
do
a=`ssh 192.168.0.$i who 2> /dev/null`
if [ $? == 0 ]
then
echo "192.168.0.$i" $a
fi
i=`expr $i + 1`
done
>>952 「このプログラムは返り値を提供しません。標準出力の結果を勝手に解析してください」
でもいい気がするんだけど。実際リターンコードは結構適当だし。
すみません。先輩から「最近のCの規格で、voidは大文字でも良くなったよ」と聞きました。
試しに
int main(VOID)
{
printf("VOID(・∀・)\n");
return 0;
}
を実行してみると、ちゃんと動きました。
この規格は、いつ決まったのでしょうか?
参考になるURL等ありましたら教えてください。
>>953 返り値はUNIXツールの習慣なんだけど、実際返り値があるとシェルプログラムから
扱うときに非常に便利なんだ。
返り値にもメタファがあって、習慣どおりにしないと不便になる。
すみません。ちょっと間違えました。
957 :
デフォルトの名無しさん:04/12/11 21:56:44
>>951 その「システム」を ISO/IEC9899 は定義せずに shall とか言ってるわけだ
958 :
デフォルトの名無しさん:04/12/11 22:02:03
>>955 &&で繋いで処理する時なんかかな?
./configure && makeとか
960 :
デフォルトの名無しさん:04/12/11 22:03:33
962 :
デフォルトの名無しさん:04/12/11 22:12:23
>>960 よく読めよ
返却値の型が int の main を受理できなければならないだけで
それ以外を implementation-defined としているだろ
ちゃんと文書化してあれば合法なんだよ
>>954 windows.hなんかをインクルードするとそうなる。
windows.hの中でインクルードされているwindef.hかどっかに#define VOID voidと書かれているから。
DWORDとかVOIDとか、使いたくないんだけど。。
どうせならVoidやTrueも通るようにすればいいのに
HTMLを手書きしてる人で
<Html>
<Head><Title>hoge</Title>
</Head>
</Html>
ってやってるのがいたな
>>963 windows.hなんて全然使ってません。
#includeしているのは、<stdio.h>だけです。
gccとbccとvctkの全てで動作を確認しました。
嘘だと思うなら、試してみてください。
970 :
デフォルトの名無しさん:04/12/11 22:28:46
>>962 「ちゃんと文書化してあれば」って何のことだ?
社内規定?
あと、
int main(Void) { ... }
でも動きました。
972 :
デフォルトの名無しさん:04/12/11 22:29:09
教えてください。
入力した文字列を格納した配列のポインタを戻したいんですけど、警告がでました。
警告1:プロトタイプ宣言のない関数'input'の呼び出し。(関数 main)
警告2:コードは効果をもたない。(関数 main)
警告3:問題のあるポインタの変換。(関数 input)
ソース↓
#include <stdio.h>
#define MAX 256
char *input();
void main()
{
*input();
}
char *input()
{
char s[MAX];
printf("COMMAND:");
scanf("%s", s);
return s;
}
973 :
デフォルトの名無しさん:04/12/11 22:30:58
>>972 char *input()はですねー、char*型の返り値を返す、inputという関数の定義なんですよー にゃんにゃん
976 :
デフォルトの名無しさん:04/12/11 22:32:39
977 :
973:04/12/11 22:33:21
>>972 お前が言いたいだろうことを最大限考慮してやった↓。
これがしたいんだろ?
#include <stdio.h>
#define MAX 256
char *input();
void main()
{
char* p;
p = input();
printf("%s\n", p);
}
char *input()
{
static char s[MAX];
printf("COMMAND:");
scanf("%s", s);
return s;
}
979 :
デフォルトの名無しさん:04/12/11 22:34:49
バカって言われて悔しかったんだろ
もうほっとけ
K&Rでvoid mainに関する記述があるのはどのあたり?
983 :
デフォルトの名無しさん:04/12/11 22:38:03
>>979 環境依存?覚えた言葉をすぐ使っちゃダメってママに言われたろ?
*char input()
で駄目?
>>980 揚げ足を取っているわけではなくて、まれではないと思うよ。
986 :
デフォルトの名無しさん:04/12/11 22:38:58
>>983 ・・・しょぼい煽りだな。
狭い世界で生きててくださいねw
987 :
デフォルトの名無しさん:04/12/11 22:40:13
>>985 希ではないから良いコードだというわけではないだろう。
/■\
(´Д`iill)
(⊃ ⊂)
(⌒(⌒_.ノ
で、K&Rにvoid mainに関する記述はないの?
ごめん、誤爆。
991 :
デフォルトの名無しさん:04/12/11 22:41:46
>>987 良いか悪いかじゃない。規格に定まっているかのような嘘をつくな
>>949はこれほど好意的に受け止めてもらったのに
>>954の
int main(VOID, argv)
int VOID;
char **argv;
{ ... }
は相手にしてもらえませんでした。
ちょっと悲しいです。
でも、
>>946さんなどには満足していただけたかと思います。
次はPart96だな
>>987 例えば、組み込み。
ヘッダは自分で書くことが非常に多い。
996 :
デフォルトの名無しさん:04/12/11 22:44:54
997 :
デフォルトの名無しさん:04/12/11 22:45:41
(・∀・)イイ!!
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。