code snippet:
/**
* @brief 将path文件所有内容载入dest缓冲区中
* @param[in] path 文件的完整路径或相对路径
* @param[out] dest 文件内存存储到这个缓冲区里面
* @param[in] dest_len 缓冲区字节数
* @return
* 成功:返回传入的dest指针
* 失败:返回NULL
*/
static char *load_file( const char *path, char *dest, size_t dest_len )
{
FILE * pfile;
pfile = fopen(path, "rb");
if (pfile == NULL)
{
return NULL;
}
fseek(pfile, 0, SEEK_END);
size_t len = ftell(pfile);
if (len >= dest_len)
{
// 文件内容太大,缓冲区装不下。
UB_LOG_FATAL("fail: buffer[%lu bytes] not big enough to hold the file [%s]", dest_len, path);
return NULL;
}
rewind(pfile);
len = fread(dest, 1, dest_len, pfile);
dest[ len ] = '\0';
fclose(pfile);
return dest;
}