Go语言技术文章
-
用 Go testing.F.Add 为模糊测试准备可重复的边界输入,本文给出一个可复用的最小示例,并说明 Fuzz 回调、运行命令、失败输入和回归测试之间的边界。344 收藏 -
Go os.DirFS 可以把一个目录包装成可复用的 fs.FS,批处理时在循环外创建并用相对路径读取文件,可减少重复路径处理;但它不是通用的 chroot 安全机制,符号链接和相对根目录仍需单独判断。413 收藏 -
用一个只读目录工具说明 Go os.DirFS 的根目录、fs.FS 相对路径和符号链接边界,并按空目录、路径错误和越界风险给出排查方案。154 收藏 -
Go os.DirFS把目录映射为fs.FS,适合把资源读取代码与宿主路径解耦。本文从一次实际封装体验出发,给出有界读取示例,并比较DirFS与Root.FS的适用边界。131 收藏 -
用 os.Pipe 把两个 Go 进程的标准输出和标准输入直接连起来,重点处理启动、关闭与 Wait 顺序,并解释为什么这比先拼接整段字符串更适合连续批处理。419 收藏 -
Go os.Pipe 可以把一个进程的标准输出接到另一个进程的标准输入。本文从一个小型命令管道出发,说明读写端方向、Cmd 生命周期、关闭时机,以及结果为空和等待不返回的常见原因。244 收藏 -
用 Go 的 os.Pipe 把一个 exec.Cmd 的标准输出接到另一个进程的标准输入,本文给出可复用的最小示例,并说明 Start、Wait、Close 的顺序以及与 StdoutPipe、io.Pipe、Output 的选型区别。391 收藏 -
Go io.MultiWriter可同步向多个目标写入同一份字节。本文用文件与摘要器示例说明如何复用分发器、编码暂存和批次缓冲,并保留短写、错误停止、尾批与关闭错误处理。168 收藏 -
用 Go 的 io.MultiWriter 把一次 Write 分发到多个 Writer,重点解释目标对象、指针形式、返回值以及某个目标出错后为什么后续目标不会继续收到本次数据。297 收藏 -
用一个小型 Go 命令行项目演示 io.MultiWriter 如何把同一份写入分发到 bytes.Buffer 和 os.File,重点说明目标顺序、错误停止、文件关闭与可复用封装。287 收藏 -
通过 Scanner.Buffer 提高 bufio.Scanner 的单行扫描上限,并用 Bytes 复用当前缓冲,减少批处理循环中的无谓字符串分配。251 收藏 -
Go bufio.Scanner读取长行时需在首次Scan前配置Buffer,并独立限制业务字节数。本文结合完整示例说明空结果、Err检查、Bytes生命周期和文件关闭的处理方法。463 收藏 -
bufio.Scanner 默认 token 容量有限,读取超长单行时可能出现 token too long。本文说明如何在 Scan 前设置 Buffer,如何判断字节容量边界,以及什么时候改用 bufio.Reader。159 收藏 -
围绕 encoding/binary 的固定字段解析,对比 ByteOrder 直接读取、binary.Decode 与 binary.Read 的适用边界,并给出复用批处理结果切片、减少额外分配的实现方式。303 收藏 -
Go encoding/binary 解析二进制字段时,固定字节序、字段宽度和偏移必须同时对应协议。本文用小端序头部示例说明如何区分短输入、偏移错误、字节序不匹配与合法零值。358 收藏