C语言载入文件所有内容

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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值