Программирование на C

Как использовать функцию ATEXIT на языке C.

Как использовать функцию ATEXIT на языке C.
Если вы выполняете процесс в своей операционной системе Linux и все, что вам нужно, чтобы завершить процесс нормально, вы должны использовать функцию atexit в своем коде. Функция atexit позволяет вам зарегистрировать функцию, которая используется для вызова при нормальном завершении процесса перед выполнением кода. Это функция библиотеки C. Если эта функция вызывается несколько раз, каждый вызов указывает другую функцию atexit. Все они реализованы в обратном порядке в виде стека (i.е., последняя указанная функция является первой, которая выполняется при выходе). Мы обсудим с вами способы сделать все это в этой статье.

Примечание: мы будем использовать ubuntu 20.04 для выполнения конкретного процесса и его функции выхода.

Работа функции atexit:

Эта функция atexist зарегистрирует функцию, которую вы хотите вызвать в основном процессе. Это вызывает нормальное завершение программы. После выполнения, если он возвращает 0, это означает, что вызов функции выполнен успешно. Если он возвращает -1 или любое другое значение, функция atexit не смогла вызвать зарегистрированную функцию, если открыт какой-либо файл с открытым исходным кодом. Напротив, завершение, функция atexit закроет все эти файлы во время выполнения.

Шаг №1: Создайте текстовый редактор для написания программы:

Перед выполнением функции atexit, во-первых, вы должны создать программу на языке C в текстовом редакторе вашего сервера Linux, используя следующую команду на вашем терминале Linux.

$ gedit

Утилита «gedit» откроется через некоторое время, после чего вы сразу же сможете ее использовать. Это позволит открыть текстовый редактор, в котором вы можете написать свой код. Текстовый редактор будет выглядеть, как на изображении ниже:

Шаг № 2: Создайте программу на C с помощью функции atexit в текстовом редакторе:

Для использования функции atexit, во-первых, вы должны написать простой код на языке C, чтобы применить в нем функцию. На приведенном ниже изображении есть код языка C, в котором есть две функции: одна находится в основном классе, а другая зарегистрирована в вызове функции atexist.

Сохраните этот код изображения выше с любым именем, используя код расширения.c. Этот формат показывает, что это код языка C, и он позволяет вам показать функции и библиотеку языка C, приведенного ниже, в качестве примера.

Шаг № 3: Выполните процесс, чтобы проверить вывод программы:

Чтобы выполнить код, во-первых, вам нужно вернуться в терминал Linux-сервера. Для выполнения вам необходимо дать команду «gcc -o test» и имя созданного файла C. Вот команда ниже:

$ gcc -o тестовый код.c

Это покажет вам ошибку, если компилятор gcc не установлен в вашей системе.

Теперь вам нужно установить gcc, введя команду «sudo apt install gcc» на вашем терминале Linux, как показано ниже:

Нажав клавишу ввода, он начнет установку gcc на вашем сервере Linux. Это займет некоторое время; после этого он попросит вас ввести да / нет, в это время. Вы должны ввести да; тогда он начнет показывать прогресс загрузки компилятора gcc, как показано на изображении ниже:

Как только вы установили компилятор gcc на свой Linux-сервер, вы можете успешно скомпилировать в нем свой код. Для получения окончательного результата вы должны использовать. / test, как показано ниже:

Эта команда отобразит вывод вашего кода. Вы можете просмотреть вывод своего кода на приведенном ниже изображении.

Как показано выше, «успешно существует» - это созданная функция, зарегистрированная и вызываемая функцией atexit в основном коде программы. Этот вывод показывает, что функция успешно зарегистрирована. Если он не зарегистрирован, он выдаст результат как -1.

Другой пример функции atexit, использующей несколько зарегистрированных функций, которые будут вызываться:

Чтобы лучше понять, как работает эта функция, у вас может быть другой пример с другим исполнением кода. Повторите тот же процесс, чтобы написать код, как указано выше, используя команду «gedit», чтобы открыть текстовый редактор, и после написания кода сохраните его под любым именем, указав .c расширение. Как показано на изображении ниже, вы можете видеть, что несколько функций вызываются функцией atexit в одной программе.

На изображении выше вы можете видеть, что три пустые функции вызываются и регистрируются с помощью функции atexit в основном коде. Чтобы получить вывод этого кода, вы должны выполнить ту же команду, что упоминалось ранее. Откройте терминал вашего Linux-сервера и выполните команду «gcc -o test» вместе с файлом, который был создан ранее. После успешной компиляции кода вы должны выполнить следующую указанную инструкцию в терминале.

$ ./контрольная работа

Здесь вы можете увидеть, что все три вызываемые функции зарегистрированы и успешно работают.

Некоторые особенности использования функции «atexit»:

Выше мы видели очень полный Linux-сервер, использующий функцию atexit для нормализации выполняемого кода, и получили желаемый статус atexit. Когда несколько функций зарегистрированы до завершения кода, вы должны использовать несколько функций atexit для вызова каждой зарегистрированной функции.

Заключение:

В статье, как упоминалось ранее, показано использование функции atexit на языке Си. Мы использовали компилятор gcc для компиляции кода примера, относящегося к функции atexit на сервере Linux. В приведенной выше статье есть несколько примеров, чтобы понять использование функции atexit и то, как она работает в Linux. Теперь все, что вам нужно сделать, это воспользоваться этой статьей, чтобы использовать функцию atexit на вашем сервере Linux.

Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...
Как записать и транслировать игровую сессию в Linux
В прошлом игры считались только хобби, но со временем игровая индустрия увидела огромный рост с точки зрения технологий и количества игроков. Игровая ...