Go 程序中实现管道 pipeline 功能

原地址:https://segmentfault.com/a/1190000019613407

管道操作就是将上一指令的输出,作为下一指令的输入

  //先取程序的标准输入属性信息
    info, err := os.Stdin.Stat()
    if err != nil {
        return errors.Annotate(err, "stdin stat failed")
    }

    // 判断标准输入设备属性 os.ModeCharDevice 是否设置
    // 同时判断是否有数据输入 
    if (info.Mode()&os.ModeCharDevice) == os.ModeCharDevice &&  info.Size() > 0 {
        bytes, err := ioutil.ReadAll(os.Stdin)
        if err != nil {
            return errors.Annotate(err, "stdin read failed")
        }
        //TODO...
    }

相关文章