Версия:

Модуль errno

Модуль errno

Общие сведения

Модуль errno, как правило, используется внутри функции или в рамках Lua-программы совместно с модулем, функции которого могут возвращать ошибки ОС, например fio.

Индекс

Ниже приведен перечень всех функций модуля errno.

Имя Использование
errno() Получение номера ошибки для последней функции, связанной с ОС
errno.strerror() Получение сообщения об ошибке для соответствующего номера ошибки
errno()

Возврат номера ошибки для последней функции, связанной с операционной системой, или 0. Чтобы вызвать функцию, просто введите команду errno() без названия модуля.

тип возвращаемого значения:
 integer (целое число)
errno.strerror([code])

Возврат строки в ответ на номер ошибки. Строка будет содержать текст традиционного сообщения об ошибке для текущей операционной системы. Если не указан код code, то будет выведено сообщение об ошибке для последней функции, связанной с операционной системой, или 0.

Параметры:
  • code (integer) – номер ошибки в операционной системе
тип возвращаемого значения:
 

string (строка)

Пример:

Данная функция отображает результат вызова fio.open(), который вызывает ошибку 2 (errno.ENOENT). В результат включен номер ошибки, связанная с ним строка сообщения об ошибке и название ошибки.

tarantool> function f()
           >   local fio = require('fio')
           >   local errno = require('errno')
           >   fio.open('no_such_file')
           >   print('errno() = ' .. errno())
           >   print('errno.strerror() = ' .. errno.strerror())
           >   local t = getmetatable(errno).__index
           >   for k, v in pairs(t) do
           >     if v == errno() then
           >       print('errno() constant = ' .. k)
           >     end
           >   end
           > end
  ---
  ...

  tarantool> f()
  errno() = 2
  errno.strerror() = No such file or directory
  errno() constant = ENOENT
  ---
  ...

Чтобы увидеть все возможные названия ошибок, которые хранятся в метатаблице errno, введите команду getmetatable(errno) (выводятся сокращенно):

tarantool> getmetatable(errno)
  ---
  - __newindex: 'function: 0x41666a38'
    __call: 'function: 0x41666890'
    __index:
    ENOLINK: 67
    EMSGSIZE: 90
    EOVERFLOW: 75
    ENOTCONN: 107
    EFAULT: 14
    EOPNOTSUPP: 95
    EEXIST: 17
    ENOSR: 63
    ENOTSOCK: 88
    EDESTADDRREQ: 89
    <...>
  ...