C语言的`defer`特性,旨在简化资源管理和错误处理,现已可用。这得益于完成的技术规范(TS 25755)以及在Clang(版本22)和GCC(版本9+,需使用变通方法)中的实现。`defer`确保清理操作(如释放资源或解锁互斥锁)*总是*被执行,即使在提前返回或出现异常时,从而消除潜在的泄漏并简化复杂代码。 作者强烈建议C语言开发者采用`defer`。一个预处理器变通方法允许与旧版编译器兼容,但需要将代码包含在花括号中以用于GCC的嵌套函数回退。重要的是,即使没有优化,此实现也能避免堆栈利用等安全风险。 虽然由于不兼容的“块”扩展,较旧的Clang版本不受支持,但`defer`在编译后独立于外部库工作,使其易于广泛部署。提供的示例展示了它在安全内存分配和互斥锁处理中的用法。
## 神秘捐款助力大阪供水系统
日本大阪市收到了一笔惊人的捐款:21公斤(46磅)的黄金,价值约360万美元,来自匿名捐赠者,用于解决其老化的供水基础设施问题。市长横山秀幸表达了极大的感谢,并指出修复破损管道需要大量投资,仅去年一个财政年度就记录了超过90处漏水事件。
这并非这位神秘捐赠者的首次捐款,此前他曾捐赠过50万日元现金。此捐款正值日本面临日益严重的基建老化危机;超过20%的日本供水管道已超过其40年使用寿命,导致下沉孔增加和安全隐患。
大阪市水道局计划利用这笔黄金为关键的维修和升级提供资金,解决普遍的恶化问题,并确保其近三百万人拥有可靠的供水。
## Minisforum MS-R1:成功的家庭实验室ARM服务器
作者终于实现了长期以来的目标:使用Minisforum MS-R1迷你电脑,为他们的家庭实验室打造一台合理强大且价格实惠的ARM服务器。MS-R1取代了耗电量大的塔式机,并为昂贵的基于Mac的Asahi配置或性能不足的ARM系统提供了有吸引力的替代方案。
最初尝试安装Rocky Linux时,由于未检测到板载网卡而受阻,需要使用可能不稳定的驱动程序进行变通。最终,尽管作者通常更喜欢基于RHEL的服务器发行版,但由于其原生驱动程序支持,选择了Fedora。
MS-R1运行安静,并且为虚拟机管理程序提供了足够的电力,目前运行FreeBSD虚拟机作为辅助Samba域控制器。尽管该机器并非完美无缺——有限的M.2插槽可用性和不可用的Marvell网卡被指出——但作者对此感到满意。他们赞赏更广泛的ARM生态系统的进步,认为MS-R1是他们家庭实验室中值得添加的一员,特别是考虑到它的价格(559美元)以及Mac Studio等替代方案的昂贵成本。尽管存在一些早期用户的不足,但MS-R1很好地完成了它的使命。