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

Функция last_os_error

Функция last_os_error класса io::Error создает и возвращает экземпляр ошибки ввода-вывода, основываясь на коде ошибки, полученном от операционной системы. Она не принимает никаких параметров. Эта функция полезна для преобразования кодов ошибок системных вызовов (например, возвращаемых функциями C или системными API) в тип io::Error, который удобно обрабатывать средствами стандартной библиотеки Rust.

Синтаксис

std::io::Error::last_os_error()

Пример

Давайте создадим ошибку на основе последнего системного вызова. Для этого выполним операцию, которая гарантированно вызовет ошибку, например, попытаемся открыть несуществующий файл, а затем получим ошибку ОС:

use std::fs::File; use std::io::Error; fn main() { // Attempt to open a non-existent file to trigger a system error let _ = File::open("non_existent_file.txt"); // Retrieve the last OS error let err = Error::last_os_error(); println!("Error: {}", err); }

Результат выполнения кода (примерный):

Error: No such file or directory (os error 2)

Пример

Давайте рассмотрим, как можно использовать эту функцию для обработки кода ошибки, полученного от системного вызова, и вывода только её числового кода:

use std::io::Error; fn main() { // Simulating an OS error by getting the last one // In a real scenario, this might come after a failed syscall let err = Error::last_os_error(); // Check if there is a raw OS error code if let Some(code) = err.raw_os_error() { println!("OS Error Code: {}", code); } else { println!("No OS error code available."); } }

Результат выполнения кода (примерный):

OS Error Code: 0

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

  • класс io::Error,
    который представляет ошибки ввода-вывода
  • метод new,
    который создает новую ошибку ввода-вывода
  • оператор ?,
    который упрощает распространение ошибок
  • макрос panic!,
    который останавливает выполнение программы при критической ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить