これまでで一番「情けなかったとき」はいつですか?

バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:glibc detected an invalid stdio handle 中止と出て時間の計測結果が表
示されません。ご指摘お願い致します。

#include <stdio.h>#include <stdlib.h>#include <sys/time.h>double getEtime(){
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec+(double)tv.tv_usec*1e-6;
}
int main(int argc, char *argv[]){
FILE *fpin, *fpout;
char c;
double st, en;
if( argc != 3 ){
fprintf(stderr,"Usage ./copy a.bin b.bin");
exit(EXIT_FAILURE);
}
if( (fpin = fopen(argv[1],"rb")) == NULL ){
perror(argv[1]);
exit(EXIT_FAILURE);
}
if( (fpin = fopen(argv[2],"wb")) == NULL ){
perror(argv[2]);
exit(EXIT_FAILURE);
}
st = getEtime();
while( fread(&c,1,1,fpin) ==1 ){
fwrite(&c,1,1,fpout);
}
en = getEtime();
fclose(fpin);
fclose(fpout);
printf("Time: %.6f¥n",en-st);
exit(0);
}

A 回答 (2件)

if( (fpin = fopen(argv[2],"wb")) == NULL ){


ここ間違えてないですか?
    • good
    • 0

fpoutに値がセットされていないのでは?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A