先日、以下ページで質問したところ
「clock()関数は処理系によってはIO処理ができないことがある」という回答をいただき
以降GetTickCount64()で処理をするようにしています
https://teratail.com/questions/24424
ところが今日以下のプログラムを実行したところ、ちゃんと作動時間が表示され
わけがわからなくなってしまいました
c
1#include<stdio.h> 2#include<time.h> 3 4int sleep(unsigned long x){ 5 6 clock_t c1=clock(),c2; 7 8 do{ 9 if((c2=clock())==(clock_t)-1) 10 return 0; 11 }while(1000.0*(c2-c1)/CLOCKS_PER_SEC<x); 12 return 1; 13} 14 15int main(void){ 16 17 int i; 18 clock_t c; 19 20 for(i=10;i>0;i--){ 21 printf("\r%2d",i); 22 fflush(stdout); 23 sleep(1000); 24 } 25 26 printf("\r\aFire!\n"); 27 28 c=clock(); 29 printf("プログラム開始から%.1f経過しました\n",(double)c/CLOCKS_PER_SEC); 30 return 0; 31 32} 33
これは私の環境でもclock()関数でIO処理ができているということになるのでは…
皆さんの見解をお聞かせください
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/24 09:44