If na wyjście c++


(inozemec79) #1

Witam!
Czy jest możliwość aby zrobić instrukcje if na wyjście z programu, coś takiego:
if (exit(0))
{
{
Albo coś bardzo podobnego aby coś się robiło kiedy program zostanie zamknięty


(Razi) #2

Możesz do kończenia programu napisać inną funkcję, która zrobi to co zechcesz, a potem wykona exit(0).

Albo bawić się w sygnały systemowe.

Albo użyć std::atexit: http://en.cppreference.com/w/cpp/utility/program/atexit


(hindus) #3

Kiedy program zostanie zamknięty =

  • użytkownik wciśnie X / wpisze exit albo zrobi cokolwiek innego aby opuścić program
  • program zostanie ubity przez OS?

(inozemec79) #4

zamknie się np. kiedy system się zamyka


(hindus) #5

Dla Windowsa - musisz nasłuchiwać komunikatu WM_CLOSE

Możesz skorzystać z czegoś takiego:

BOOL IsCloseEventReceived()
{
MSG msg;
return PeekMessage(&msg, NULL, WM_CLOSE, WM_CLOSE, PM_NOREMOVE);
}

I odpytywać tą funkcję w pętli, np. co sekundę.

Dla Linuxa - nasłuchujesz na SIGTERM, przykład jest np. tutaj: https://airtower.wordpress.com/2010/06/16/catch-sigterm-exit-gracefully/