不能直接返回readable的*fp。你需要自己在res.c里写一套读写函数,用自己的文件指针。比如resopen, resread, resclose这样,参数不是FILE*而是自己实现的RESFILE*,里面至少记录目前这个流的位置还有这个流的基本偏移。你还需要一个文件表,记录每个文件在bin中的位置和大小。
然后res里面保存那个bin的FILE*和offset。resopen用于初始化一个RESFILE*。resread的时候就要检查FILE*的offset是否和RESFILE*需要的offset匹配,然后如果不匹配的话需要先fseek然后再fread。