какова цель функции atexit? - PullRequest
3 голосов
/ 13 апреля 2011

Я знаю, когда адрес функции передается функции atexit,
функция выполняется.

#include <stdlib.h>
int atexit(void (*func) void));

Однако, какова цель использования функции atexit?

Относится ли само словесное значение «выход» к функции atexit?

Ответы [ 3 ]

2 голосов
/ 18 февраля 2012

atexit будет использоваться для некоторого кода, который вы хотите выполнить при завершении приложения, независимо от того, откуда оно было закрыто.Одним из примеров может быть регистратор для всего приложения.Вы бы назвали atexit(flush_log), поэтому при выходе из приложения журнал будет сброшен, и разработчику не нужно будет его очищать.

0 голосов
/ 28 октября 2016
#include<stdlib.h>
int atexit(void (*func)(void));

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

0 голосов
/ 18 июня 2013

Да, atexit относится к exit.

exit может вызывать функции, которые автоматически вызываются до выхода из программы. Эти функции называются обработчиками выхода и регистрируются путем вызова функции atexit.

#include<stdio.h>                 

main(void) {                        
atexit(func);
}

func(void) 
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...