fopen/fread
ftell によるサイズ取得
ファイルサイズの取得がうまくいかないです。
以下のコードだと 0 が返ります。
FILE* f = fopen("/SERVERS/TEST.SCM", "rb"); if (NULL == f) { _printf("file open error\n"); return -1; } if (-1 == fseek(f, 0, SEEK_END)) { perror("fseek"); return -1; } size_t size = ftell(f); _printf("file size = %d\n", size); fclose(f);
fread
fread でファイルの先頭しか読めていないっぽいです。
FILE* f = fopen("/SERVERS/TEST.SCM", "rb"); if (NULL == f) { _printf("file open error\n"); return -1; } size_t size = monapi_file_get_file_size(f->_file); // 19616 byte _printf("file size = %d\n", size); char* buf = new char[size]; int readSize = fread(buf, 1, size, f); _printf("readSize = %d pos=%d\n", ftell(f)); // => readSize = 19616 pos=1 _printf("buf=%s\n", buf); // 1024 byte しか読めてない delete[] buf; fclose(f);
たびたびすみません。
→id:shotaro_tsuji