РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1458 of 1593 menu

Тип syscall.Errno

Тип syscall.Errno представляет собой числовой код ошибки, возвращаемый системными вызовами в операционных системах семейства Unix. Он реализует интерфейс error, поэтому может использоваться как обычная ошибка в Go. В первый параметр функции передается целочисленный код ошибки, который обычно возвращается из системных вызовов.

Синтаксис

type Errno uintptr

Для преобразования числового кода в ошибку используется приведение типа:

err := syscall.Errno(2)

Пример

Давайте создадим ошибку с кодом 2, который соответствует ошибке "No such file or directory":

package main import ( "fmt" "syscall" ) func main() { err := syscall.Errno(2) fmt.Println(err) }

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

"no such file or directory"

Пример

Проверим, реализует ли тип syscall.Errno интерфейс error:

package main import ( "fmt" "syscall" ) func main() { var err error err = syscall.Errno(13) fmt.Println(err.Error()) }

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

"permission denied"

Пример

Сравним код ошибки с константами из пакета syscall:

package main import ( "fmt" "syscall" ) func main() { err := syscall.Errno(13) if err == syscall.EACCES { fmt.Println("Permission denied") } }

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

"Permission denied"

Пример

Получим ошибку при попытке открыть несуществующий файл:

package main import ( "fmt" "os" "syscall" ) func main() { _, err := os.Open("/nonexistent/file") if err != nil { if errno, ok := err.(syscall.Errno); ok { fmt.Printf("Error code: %d, message: %s\n", errno, errno.Error()) } } }

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

"Error code: 2, message: no such file or directory"

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

  • функцию syscall,
    которая предоставляет интерфейс к системным вызовам
  • функцию syscall.Exec,
    которая заменяет текущий процесс на новый
  • функцию syscall.Kill,
    которая отправляет сигнал процессу
  • функцию syscall.Getpid,
    которая возвращает идентификатор текущего процесса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить