我正在编写一个C程序,从相机中获取JPEG帧并进行各种处理。我有以下函数:
static void process_frame(const void *p, int size) {
fwrite(p, size, 1, stdout);
}
这段代码在向标准输出流中写入时表现良好,但我真正需要的是像下面这样的函数("swrite"类似于fwrite
,但是将数据写入一个char
数组而不是文件):
static char* process_frame(const void *p, int size) {
char* jpegframe;
swrite(p, size, 1, jpegframe);
return jpegframe;
}
很不幸,没有swrite函数(至少我没有找到)。
那么...
有没有类似于“swrite”函数的功能?
或者
如何使用process_frame函数与printf
(因此与sprintf
)而不是fwrite
一起使用?
sprintf
吗?虽然文本导向的函数在二进制文件操作中没有对应物(据我所知),但它是fprintf
的等效用法。 - Weather Vanememcpy
或memmove
,并适当分配目标缓冲区,是正确的方法... - twalberg