我遇到过的疑难杂症

  1. 我遇到过的疑难杂症
    1. 单片机上跑的udp程序突然崩溃
    2. Go语言中,命令行标志(flags)冲突

我遇到过的疑难杂症

单片机上跑的udp程序突然崩溃

同事使用C语言写了个udp程序,与我的服务通信,逻辑是他起一个socket,向我发送数据,我回复OK。
一开始工作正常,但是一段时间后他的程序崩溃。
经排查,是因为他没有写recv()函数,且一直复用的同一个socket。数据到达后,没处理,堆积在缓冲区导致错误。

Go语言中,命令行标志(flags)冲突

我在某个程序中使用了flag包,设置了-c参数,与我引用的filebrowser包中的-c冲突,导致我在自己的配置文件中的参数被设置到了filebrowser中。

在Go语言中,命令行标志(flags)是通过flag包来解析和管理的。每个包可以有自己的标志集,但在同一个程序中,如果多个包使用了相同的标志名称(例如 -c),这可能会导致冲突。

具体来说,当你在两个不同的包中都定义了相同的标志时,这些标志是共享的。也就是说,如果你的程序中有多个包都使用了同一个标志(如 -c),解析命令行参数时,这个标志的值会对所有使用该标志的包都生效。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com

文章标题:我遇到过的疑难杂症

字数:338

本文作者:花落阁

发布时间:2024-04-17, 18:00:55

最后更新:2024-05-15, 15:35:21

原始链接:https://hualog.dns.navy/2024/04/17/%E6%88%91%E9%81%87%E5%88%B0%E8%BF%87%E7%9A%84%E7%96%91%E9%9A%BE%E6%9D%82%E7%97%87/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。