ifstream fsRead;
fsRead.open(srcFilePath.c_str(), ios::in|ios::binary);
if (!fsRead) {
sec_error("Uncompress processing: can not open source file! [%s]",src_file_name);
return -3;
}
fsRead.seekg(0, fsRead.end);
size_t srcSize = fsRead.tellg();
if (!srcSize) {
sec_error("Source file: [%s] size is 0! Return directly!",srcFilePath.c_str());
fsRead.close();
sec_error("File closed successfully!");
return 0;
}
sec_debug("Source file :[%s] size is : [%d]",srcFilePath.c_str(), srcSize);\
ofstream fsWrite;
fsWrite.open(destFilePath.c_str(), ios::out|ios::binary);
if (!fsWrite) {
fsRead.close();
sec_error("Compress processing: can not open destination file! [%s]",des_file_name);
return -3;
}
// Some work ...
fsWrite.seekp(0, fsWrite.end);
size_t dstFileSize = fsWrite.tellp();
tellg() 和 tellp() 代表当前get 流指针的位置 (用tellg) 或 put 流指针的位置(用tellp).
long l,m;
l = f.tellp();
f.seekg(0,ios::end);
m = f.tellp();