修正が必要なOPの例を次に示します。

less than 1 minute read

修正が必要なOPの例を次に示します。 //(新規)OpenBlockFile関数。パスは「-」にすることもできます。 static std :: string strOldBlockFileName = GetBlockFileName(pos。nFile、pos。nPos); if(strOldBlockFileName。empty())throw std :: runtime_error(strprintf( "CBlockFile :: OpenBlockFile failed。")); FILE * file = fopen(strOldBlockFileName。c_str()、 "rb +"); if(!file)return false; if(fseek(file、pos。nPos、SEEK_SET))fail_msg_writer()<< strprintf( "シークに失敗しました:%s。"、strerror(errno)); falseを返します。 FILE * filebuf = fopen(strNewBlockFileName。c_str()、 "wb +"); if(!filebuf)はfalseを返します。 if(fseek(filebuf、pos。nPos、SEEK_SET))fail_msg_writer()<< strprintf( "Seek failed:%s。"、strerror(errno)); falseを返します。 if(!fputs(filebuf。what()、pos。nPos、file))falseを返します。 trueを返します。 bool CBlock :: ReadFromDisk(const CBlockIndex * pindex)//履歴ファイルを開いてCAutoFile fileout(OpenBlockFile(pos)、SER_DISK、CLIENT_VERSION); if(fileout。IsNull())return error( "ReadFromDisk(CBlockIndex *):OpenBlockFile failed"); //読み取りブロックlong fileOutPos = ftell(fileout。Get()); if(fileOutPos <0)エラーを返す( "ReadFromDisk(CBlockIndex *):ftell failed"); //推定サイズ制限を満たすために十分な読み取り(署名を含む)があるかどうかを確認if(!CheckDiskSpace(fileout。Get()+ filein。GetHeight()、chainparams。GetConsensus()))return error(