Модуль errno
Модуль errno, как правило, используется внутри функции или в рамках
Lua-программы совместно с модулем, функции которого могут возвращать
ошибки ОС, например fio.
Ниже приведен перечень всех функций модуля errno.
Имя | Назначение |
|---|---|
Получение номера ошибки для последней функции, связанной с операционной системой | |
Получение сообщения об ошибке для соответствующего номера ошибки |
Возврат номера ошибки для последней функции, связанной с операционной
системой, или 0. Чтобы вызвать функцию, просто введите команду errno()
без названия модуля.
Тип возвращаемого значения
integer
Возврат строки в ответ на номер ошибки. Строка будет
содержать текст традиционного сообщения об ошибке для текущей
операционной системы. Если не указан код 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() = 2errno.strerror() = No such file or directoryerrno() constant = ENOENT---...
Чтобы увидеть все возможные названия ошибок, которые хранятся в
метатаблице errno, введите команду getmetatable(errno) (выводятся
сокращенно):
tarantool> getmetatable(errno)---- __newindex: 'function: 0x41666a38'__call: 'function: 0x41666890'__index:ENOLINK: 67EMSGSIZE: 90EOVERFLOW: 75ENOTCONN: 107EFAULT: 14EOPNOTSUPP: 95EEXIST: 17ENOSR: 63ENOTSOCK: 88EDESTADDRREQ: 89<...>...