|
很怪很怪的问题,不知道哪位朋友知道,帮忙解决,谢谢。
脚本:================================
lrs_receive("socket1", "buf15", LrsLastArg);
///lr_think_time(10);
lrs_get_buffer_by_name("buf15", &Buffer, &Size);
lr_output_message("______________Size1 = \"%d\"\n , Buffer1 = \"%s\"\n. ",Size,Buffer);
lr_output_message("______________Sizeof1 = \"%d\"\n . ",strlen(Buffer));
lrs_get_buffer_by_name("buf15", &Buffer, &Size);
lr_output_message("______________Size2 = \"%d\"\n , Buffer2 = \"%s\"\n. ",Size,Buffer);
lr_output_message("______________Sizeof2 = \"%d\"\n . ",strlen(Buffer));
日志:==========================================
Action.c(108): lrs_get_buffer_by_name (buf15, buf_p, size_p)
Action.c(110): ______________Size1 = "9"
, Buffer1 = "tester567nama"
.
Action.c(112): ______________Sizeof1 = "13"
.
Action.c(114): lrs_get_buffer_by_name (buf15, buf_p, size_p)
Action.c(116): ______________Size2 = "9"
, Buffer2 = "tester567"
.
Action.c(118): ______________Sizeof2 = "9"
问题:=====================================
第一次lrs_get_buffer_by_name,其中的buffer值为“tester567nama”,但是第二次lrs_get_buffer_by_name,取的是同样的缓冲区数据,buffer值却为“tester567”,而这次的值才是正确的,为什么第一次去取总会取错呢?更郁闷的是两次的SIZE都为9,但是头一次的BUFFER值为什么总不对?
怎么弄撒,好变态的问题```第一次和第二次取的值不一样,更恶心的是第一次的值为tester567nama,但SIZE显示却只有9,明显不是9,通过strlen显示为13,事实上也是13。
这函数是不是有毛病的``第二次GET出来的值是正确的。为什么第一次有错误呢?
而通过下面的方式去获取,就正确了,不管第一次还是第几次
Size = lrs_get_last_received_buffer_size("socket1");
Buffer = lrs_get_received_buffer("socket1", 0, Size, NULL);
lr_output_message("_____________Size = \"%d\"\n buf15 = \"%s\"\n. ",Size,Buffer);
为什么lrs_get_buffer_by_name第一次取就有问题呢?而第一次显示的SIZE和实际打印出来的对不上呢?而第二次lrs_get_buffer_by_name才会正确 |
|