日志参数 %n 引起的coredump
今天测试发现一段代码 coredump,居然是一行日志输出。看参数都乱了,以为是内存溢出造成的。查了半天,也没发现问题
最后把前边的函数调用都注释掉,只运行这一段日志输出,依然挂掉
仔细一看:
TRACE_INFO("INSP_USED_ID [%s] Current MEAS_ITEM Cnt [%d] not Equal [%d] need QaSamle\n", ...
%d 写成了 %n
TRACE_INFO("INSP_USED_ID [%s] Current MEAS_ITEM Cnt [%n] not Equal [%n] need QaSamle\n",
而且 %n , 也有自己的用处:
在C printf() 中,%n是一个特殊的格式说明符,它不打印某些内容,printf() 统计出现在 %n 之前的字符数,并将该值赋值给参数变量。
好奇怪的用处啊,啊哈哈。
浙公网安备 33010602011771号