Programowanie C

Jak korzystać z funkcji ATEXIT w języku C?.

Jak korzystać z funkcji ATEXIT w języku C?.
Jeśli wykonujesz proces w swoim systemie operacyjnym Linux i chcesz mieć normalne zakończenie procesu, musisz użyć funkcji atexit w swoim kodzie. Funkcja atexit pozwala zarejestrować funkcję, która jest używana do wywoływania w normalnym zakończeniu procesu przed wykonaniem kodu. To funkcja z biblioteki C C. Jeśli ta funkcja zostanie wywołana kilka razy, każde wywołanie określa inną funkcję atexit. Wszystkie są zaimplementowane w odwrotnej kolejności jako stos (i.mi., ostatnia podana funkcja jest pierwszą do wykonania przy wyjściu). W tym artykule omówimy z tobą metody robienia tego wszystkiego.

Uwaga: będziemy używać ubuntu 20.04 za wykonanie określonego procesu i jego funkcji atexit.

Działanie funkcji atexit:

Ta nieistniejąca funkcja zarejestruje funkcję, którą chcesz wywołać w głównym procesie. Powoduje to normalne zakończenie programu. Po wykonaniu, jeśli zwraca 0, oznacza to, że wywołanie funkcji powiodło się. Jeśli zwraca -1 lub dowolną inną wartość, funkcja atexit nie może wywołać zarejestrowanej funkcji, jeśli zostanie otwarty dowolny plik o otwartym kodzie źródłowym. Natomiast zakończenie, funkcja atexit zamknie wszystkie te pliki w momencie wykonania.

Krok nr 1: Utwórz edytor tekstu, aby napisać program:

Przed wykonaniem funkcji atexit, po pierwsze, musisz utworzyć program w języku C w edytorze tekstu serwera Linux, używając następującego polecenia na terminalu Linux.

$ gedit

Otwarcie narzędzia „gedit” zajmie trochę czasu, po czym będzie można go natychmiast użyć. Pozwoli to na otwarcie edytora tekstu, w którym możesz pisać swój kod. Edytor tekstu pojawi się jak na poniższym obrazku:

Krok #2: Zakoduj program w C za pomocą funkcji atexit w edytorze tekstu:

Aby użyć funkcji atexit, najpierw musisz napisać prosty kod w języku C, aby zastosować w nim tę funkcję function. Na poniższym obrazku znajduje się kod języka C, w którym są dwie funkcje, jedna znajduje się w klasie głównej, a druga jest zarejestrowana w wywołaniu funkcji atexist.

Zapisz powyższy kod obrazu z dowolną nazwą za pomocą kodu rozszerzenia.do. Ten format pokazuje, że jest to kod języka C i pozwala pokazać funkcje i bibliotekę języka C poniżej podany jest na przykładzie.

Krok # 3: Wykonaj proces, aby sprawdzić dane wyjściowe programu:

Aby wykonać kod, najpierw musisz wrócić do terminala serwera Linux. Aby wykonać, musisz podać polecenie „gcc -o test” i nazwę utworzonego pliku C. Oto polecenie poniżej:

$ gcc -o kod testowy.do

Spowoduje to wyświetlenie błędu, jeśli kompilator gcc nie jest zainstalowany w twoim systemie.

Teraz musisz zainstalować gcc, wydając polecenie „sudo apt install gcc” na swoim terminalu Linux, jak pokazano poniżej:

Naciśnięcie klawisza Enter rozpocznie instalację gcc na serwerze Linux Linux. To zajmie trochę czasu; potem poprosi Cię o wpisanie tak/nie, w tym czasie. Musisz wpisać tak; następnie zacznie pokazywać postęp pobierania kompilatora gcc, jak pokazano na poniższym obrazku:

Jak tylko zainstalujesz kompilator gcc na swoim serwerze Linux, możesz z powodzeniem skompilować w nim swój kod. Aby uzyskać ostateczny wynik, musisz użyć. /test komenda jak poniżej:

To polecenie wyświetli wynik twojego kodu. Możesz zobaczyć wynik swojego kodu na poniższym obrazku.

Jak pokazano powyżej, „Existing Successfully” to utworzona funkcja zarejestrowana i wywołana przez funkcję atexit w głównym kodzie programu. To wyjście pokazuje, że funkcja została pomyślnie zarejestrowana. Jeśli nie jest zarejestrowany, da wynik jako -1.

Inny przykład funkcji atexit wykorzystującej wiele zarejestrowanych funkcji do wywołania:

Aby lepiej wiedzieć, jak działa ta funkcja, możesz mieć inny przykład z innym wykonaniem kodu. Powtórz ten sam proces, aby napisać kod, jak wspomniano powyżej, używając polecenia „gedit”, aby otworzyć edytor tekstu, a po napisaniu kodu zapisz go pod dowolną nazwą, wymieniając .c rozszerzenie. Jak pokazano na poniższym obrazku, możesz zobaczyć, że wiele funkcji jest wywoływanych przez funkcję atexit w tym samym programie.

Na powyższym obrazku widać, że trzy puste funkcje są wywoływane i rejestrowane za pomocą funkcji atexit w głównym kodzie. Aby uzyskać wynik tego kodu, musisz wykonać to samo polecenie, jak wspomniano wcześniej. Otwórz terminal serwera Linux i wykonaj polecenie „gcc -o test” wraz z utworzonym wcześniej plikiem. Po udanej kompilacji kodu należy wykonać w terminalu poniższą zacytowaną instrukcję.

$ ./test

Tutaj możesz zobaczyć, że wszystkie trzy wywołane funkcje są zarejestrowane i działają pomyślnie.

Niektóre szczególne zastosowania funkcji „atexit”:

Powyżej widzieliśmy bardzo wszechstronny serwer Linux używający funkcji atexit do normalizacji wykonywanego kodu i uzyskania pożądanego statusu atexit. Gdy wiele funkcji jest zarejestrowanych przed zakończeniem kodu, musisz użyć wielu funkcji aexit, aby wywołać każdą zarejestrowaną funkcję.

Wniosek:

Artykuł, jak wspomniano wcześniej, pokazuje zastosowanie funkcji atexit w języku C. Użyliśmy kompilatora gcc do skompilowania przykładowego kodu związanego z funkcją atexit na serwerze Linux. W powyższym artykule jest wiele przykładów pozwalających zrozumieć użycie funkcji atexit i jej działanie w Linuksie. Teraz wszystko, co musisz zrobić, to skorzystać z tego artykułu, aby użyć funkcji atexit na swoim serwerze Linux.

Gry Battle for Wesnoth Tutorial
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
Gry 0 A.D. Tutorial
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Gry Unity3D Tutorial
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...