質問: 先日、以下ページで質問したところ 「clock()関数は処理系によってはIO処理ができないことがある」という回答をいただき 以降GetTickCount64()で処理をするようにしています ところが今日以下のプログラムを実行したところ、ちゃんと作動時間が表示され わけがわからなくなってしまいました ``` #include #include int sleep(unsigned long x){ clock_t c1=clock(),c2; do{ if((c2=clock())==(clock_t)-1) return 0; }while(1000.0*(c2-c1)/CLOCKS_PER_SEC0;i--){ printf("\r%2d",i); fflush(stdout); sleep(1000); } printf("\r\aFire!\n"); c=clock(); printf("プログラム開始から%.1f経過しました\n",(double)c/CLOCKS_PER_SEC); return 0; } ``` これは私の環境でもclock()関数でIO処理ができているということになるのでは... 皆さんの見解をお聞かせください
回答: > > clock()関数は処理系によってはIO処理ができないことがある > > > リンク元見ましたが、そんなこと誰も言っていません。 clock()はプログラムが使ったプロセッサ時間を返し、 処理系によってはそのプロセッサ時間にscanfなどの待ち時間が含まれないということです。