![]() |
1
5
首次使用
|
![]() |
2
3
首先,如果你对“清洁剂”感兴趣,停止使用
事实上,您的代码被破坏是因为您使用了
标准库中不存在长度有限的复制功能,但通常由实现以名称提供
您的代码也因使用错误而损坏
第二,而不是添加
|
![]() |
3
1
自从
注意,我也修正了strncat的参数。 |
![]() |
4
0
除非你想把msg用于strcat(不安全和邪恶,因为你不知道字符串的大小),否则我认为你必须使用2个缓冲区。 顺便说一句,我将考虑strncpy(…,bufsize-2),以便\r\n始终将其放到您的消息上,因此字符串始终换行。 |
![]() |
5
0
代码的一个主要问题是:vsnprintf返回如果缓冲区无限大,将放置在缓冲区中的字符数,如果缓冲区不够大,则可能大于bufsize。因此,如果有一条消息溢出,那么您将在缓冲区结束后从发送随机垃圾。您需要添加一行
在vprintf之后,如果要实际截断消息 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |