如何使用LZO压缩和解压缩字符串?

时间:2020-05-10 01:46:34

标签: c lzo

试图弄清楚插入数据的正确方法是什么。有什么帮助吗?以此处看到的方式执行此操作将导致不进行强制转换的整数。我已经尝试了几种方法,但是从没有尝试过。

lzo_bytep SERV_DATA_SEND = "702D31FA78809907133F1256459ABFECA9769AEAB65F3F125658";

in_len = IN_LEN;
lzo_memset(in,SERV_DATA_SEND,strlen(SERV_DATA_SEND));
printf("memset: %s\n\n", in);

1 个答案:

答案 0 :(得分:1)

要在缓冲区中准备数据,应使用lzo_memcpy(in, SERV_DATA_SEND, strlen(SERV_DATA_SEND)),它在第二个参数中接受chars。

pub unsafe extern "C" fn lzo_memcpy(
    dst: *mut c_void, 
    src: *const c_void, 
    len: lzo_uint
) -> *mut c_void

lzo_memset()中,第二个参数接受一个整数。

pub unsafe extern "C" fn lzo_memset(
    buf: *mut c_void, 
    c: c_int, 
    len: lzo_uint
) -> *mut c_void

例如,如果您要清除缓冲区,则可以使用下面的代码。它将所有块设置为零。

lzo_memset(in,0,in_len);

请查看http://www.oberhumer.com/opensource/lzo/#download

中的overlay.c和simple.c示例