STDOUT · STDERR Trung cấp CA 02 / 09

Sao tách riêng buffer stdout và stderr?

Hệ thống hàng đợi in ấn đọc output của driver máy in:

var stdout, stderr bytes.Buffer
cmd := exec.CommandContext(ctx, "kubectl", args...)
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
    return fmt.Errorf("lệnh lỗi: %s", stderr.String())
}
return stdout.String(), nil

Vì sao tách RIÊNG 2 buffer stdout/stderr thay vì gộp chung 1 buffer duy nhất đọc toàn bộ output?