예제 #1
0
파일: FileIO.cpp 프로젝트: jjf28/Chkdraft
bool FileToBuffer(const std::string &fileName, buffer &buf)
{
    bool success = false;
    if ( fileName.length() > 0 )
    {
        FILE* pFile = std::fopen(fileName.c_str(), "rb");
        if ( pFile != nullptr )
        {
            buf.flush();
            std::fseek(pFile, 0, SEEK_END);
            u32 fileSize = (u32)std::ftell(pFile);
            if ( buf.setSize(fileSize) )
            {
                buf.sizeUsed = fileSize;
                std::rewind(pFile);
                size_t lengthRead = std::fread(buf.data, 1, buf.sizeUsed, pFile);
                success = (lengthRead == buf.sizeUsed);
            }
            std::fclose(pFile);
        }
    }
    return success;
}