vine-users ML アーカイブ



[vine-users:052233] Re: 計測時間が狂うのです

  • From: 上村岳明 <kami@xxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:052233] Re: 計測時間が狂うのです
  • Date: Fri, 19 Jul 2002 10:41:20 +0900
上村です。

>         if(sscanf(buf, "passed time /sec = %lu", ppass0     < 1
>             fprintf(stderr, "can't read pass0 ! \n"), exit(1);

ほんとにこれでgccを通っているのですか? 左右のカッコの数が合ってないと
思います。

    if(sscanf(buf, "passed time /sec = %lu", ppass0)     < 1)
          fprintf(stderr, "can't read pass0 ! \n"), exit(1);

のつもりではないのでしょうか?

gccでエラーにならなかったとしたら

    if(sscanf(buf, "passed time /sec = %lu", ppass0     < 1))
          fprintf(stderr, "can't read pass0 ! \n"), exit(1);

になっているのではないかとおもいますが......
この場合多分実行時にエラー(Segmentation fault ?)になると思いますが。
理由は

printf("value = %lu\n",ppass0 < 1);

で表示される値で表されるアドレスにsscanfの結果を書き込むことになると
思うからです。

間違っていたら、識者の方フォローを宜しく...

尚、変数の定義のあたり、特にppass0の前後も省略しないで書いたほうが
アドヴァイスを受けやすいと思います。(原因がそのあたりにあるかも...)

-- 
==================================================
上村 岳明   Gakumei Kamimura
   E-Mail:kami@xxxxxxxxxxxxxxxxxxx
   TEL 03-5445-7059 / FAX 03-5445-7071
   JALインフォテック(株)ソリューション事業本部