如何使用 LZO 压缩和解压缩字符串?
How to compress and decompress a string with 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);
要在缓冲区中准备数据,您应该使用 lzo_memcpy(in, SERV_DATA_SEND, strlen(SERV_DATA_SEND))
,它的第二个参数接受字符。
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);
中的 overlap.c 和 simple.c 示例
试图弄清楚插入我的数据的正确方法是什么。有什么帮助吗?以此处看到的方式执行此操作会导致没有强制转换的整数。我已经尝试了几种方法,但从来没有完全掌握它。
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);
要在缓冲区中准备数据,您应该使用 lzo_memcpy(in, SERV_DATA_SEND, strlen(SERV_DATA_SEND))
,它的第二个参数接受字符。
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);
中的 overlap.c 和 simple.c 示例