【发布时间】:2010-04-09 07:14:29
【问题描述】:
我在打印数据时遇到了一个奇怪的问题。我使用 printf 打印一个 char* 字符串,然后再打印另一个。然而,第一个字符串的一部分没有被打印出来,当我打印第二个字符串时,第一个字符串的缺失部分被添加到那个字符串之前。这里发生了什么?
我正在编写一个简单的 libpcap 实现。这是一个将产生相同结果的示例回调函数。我尝试在打印后删除缓冲并添加 putchar('\n') ,但没有帮助。
void ParseData(u_char* useless, const struct pcap_pkthdr* pkthdr, const u_char* packet){
int packetLen, i;
packetLen = pkthdr->len;
for (i = 0; i < packetLen; i++){
putchar(packet[i]);
}
}
【问题讨论】:
-
你能显示一些代码吗?这可能会有所帮助。
-
愿意分享示例源代码和输出吗?