我遇到过的疑难杂症
单片机上跑的udp程序突然崩溃
同事使用C语言写了个udp程序,与我的服务通信,逻辑是他起一个socket,向我发送数据,我回复OK。
一开始工作正常,但是一段时间后他的程序崩溃。
经排查,是因为他没有写recv()
函数,且一直复用的同一个socket
。数据到达后,没处理,堆积在缓冲区导致错误。
Go语言中,命令行标志(flags)冲突
我在某个程序中使用了flag包,设置了-c参数,与我引用的filebrowser包中的-c冲突,导致我在自己的配置文件中的参数被设置到了filebrowser中。
在Go语言中,命令行标志(flags)是通过flag包来解析和管理的。每个包可以有自己的标志集,但在同一个程序中,如果多个包使用了相同的标志名称(例如 -c),这可能会导致冲突。
具体来说,当你在两个不同的包中都定义了相同的标志时,这些标志是共享的。也就是说,如果你的程序中有多个包都使用了同一个标志(如 -c),解析命令行参数时,这个标志的值会对所有使用该标志的包都生效。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com