Функция os.Exit

Функция os.Exit завершает работу текущей программы немедленно. В качестве аргумента она принимает целочисленный код выхода: 0 обычно означает успешное завершение, а любой ненулевой код сигнализирует об ошибке. После вызова os.Exit отложенные функции (defer) не выполняются, а вывод в буферизированные потоки может быть потерян.

Синтаксис

goos.Exit(code)

Пример

Давайте завершим программу с кодом успешного выполнения:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  fmt.Println("Starting program...")
  os.Exit(0)
  fmt.Println("This line will not be printed")
}

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

go"Starting program..."

Пример

Давайте завершим программу с кодом ошибки:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  fmt.Println("An error occurred")
  os.Exit(1)
}

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

go"An error occurred"

Пример

Обратите внимание, что defer не выполняется после вызова os.Exit:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  defer fmt.Println("Deferred message")
  os.Exit(0)
}

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

go(empty output)

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

  • функцию os.Args,
    которая возвращает аргументы командной строки
  • функцию os.Getenv,
    которая получает значение переменной окружения
  • функцию os.Getpid,
    которая возвращает идентификатор текущего процесса
  • функцию os.Process.Kill,
    которая принудительно завершает процесс