Переменная os.Stderr

Переменная os.Stderr представляет стандартный поток ошибок (stderr) операционной системы. Это глобальная переменная пакета os типа *os.File, которая позволяет программам на Go записывать сообщения об ошибках, предупреждения и отладочную информацию. В отличие от os.Stdout, предназначенного для обычного вывода, stderr используется для сообщений об ошибках и аварийного вывода, что позволяет разделять стандартный вывод и вывод ошибок.

Использование os.Stderr особенно важно в консольных приложениях и сервисах, где необходимо четко разделять полезные данные и сообщения об ошибках. Это позволяет перенаправлять вывод ошибок в отдельные логи или файлы для последующего анализа и мониторинга работы программы.

Синтаксис

goos.Stderr.Write([]byte("error message"))
os.Stderr.WriteString("error message")
fmt.Fprint(os.Stderr, "error message")
fmt.Fprintf(os.Stderr, "error: %v", err)

Пример

Давайте запишем простое сообщение об ошибке в стандартный поток ошибок:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  fmt.Fprintln(os.Stderr, "Error: something went wrong")
}

Результат выполнения кода:

go"Error: something went wrong"

Пример

Рассмотрим пример с обработкой ошибки при открытии файла, где сообщение об ошибке записывается в stderr:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Open("nonexistent.txt")
  if err != nil {
    fmt.Fprintf(os.Stderr, "failed to open file: %v\n", err)
    os.Exit(1)
  }
  defer file.Close()
}

Результат выполнения кода:

go"failed to open file: open nonexistent.txt: no such file or directory"

Пример

Использование метода WriteString для записи сообщения в stderr:

gopackage main

import (
  "os"
)

func main() {
  _, err := os.Stderr.WriteString("Warning: low disk space\n")
  if err != nil {
    os.Exit(1)
  }
}

Результат выполнения кода:

go"Warning: low disk space"

Смотрите также

  • переменную os.Stdin,
    которая предоставляет стандартный поток ввода
  • переменную os.Stdout,
    которая предоставляет стандартный поток вывода
  • функцию os.OpenFile,
    которая открывает файл с указанными флагами и правами доступа
  • функцию os.File.Write,
    которая записывает данные в файл