Składnia
#włączaćObjaśnienie składni
Połączenie systemowe BRK () powoduje pęknięcie programu w pozycji segmentu danych końcowych. Segment danych końcowych jest zaokrąglany do następnej strony, ponieważ pamięć wirtualna jest przydzielona w jednostkach stron. Próby obniżenia wartości przerwania programu poniżej jego wartości początkowej z pewnością spowodują nieoczekiwane zachowanie, takie jak usterka segmentacji podczas próby dostępu. Kilka czynników określa dokładny górny limit dla miejsca, w którym można umieścić zerwanie programu.
Dlaczego warto używać połączenia systemowego BRK () w C
Funkcja brk () służy do modyfikacji ilości pamięci przydzielonej do procesu dzwoniącego. Modyfikacja jest dokonywana przez zmianę wartości przerwania procesu w celu dodania i zapewnienie niezbędnej liczby przestrzeni. Funkcja brk () służy do modyfikacji ilości pamięci przydzielonej do procesu dzwoniącego. Wraz ze wzrostem wartości przerwy również ilość przydzielonej przestrzeni. Nowo przydzielona przestrzeń ma wartość 0 przypisaną do niej. Wartości realokowanej przestrzeni nie są opróżniane, jeśli program pierwszy spadnie, a następnie zwiększa wartość przerwania.
Wymagania wstępne
Przykład wyjaśnienia brk () w c
Zaprojektowaliśmy najprostszy przykład, aby opracować koncepcję korzystania z wywołania systemu BRK (). Utwórzmy plik z .rozszerzenie C za pomocą polecenia Nano w skorupce. Wykonaj dołączone poniższe polecenie w powłoce:
$ nano brk1.CW systemach operacyjnych Linux GNU Nano jest prostym edytorem tekstu wiersza poleceń. Ma wszystkie fundamentalne funkcje, które można założyć od edytora tekstu, a także kilka innych. Po wykonaniu plik zostanie otwarty w Edytorze GNU. Napisz wyświetlany kod w pliku z kilkoma poprawkami w zależności od wymagań pracy.
W kodzie dołączonym na powyższym zrzucie ekranu liczba argumentów jest skrócona jako argc, a wartości argumentów są skrócone jako argv. Są to zmienne przekazywane do głównej funkcji, gdy zaczyna działać. W czasie wykonywania funkcja SysConf pobiera informacje o konfiguracji. SYSCONF z argumentem _sc Steose to poprawny interfejs do zapytania o rozmiar strony. SBRK () zwiększa przestrzeń do przechowywania programu poprzez zwiększenie bajtów. Obecną lokalizację przerwy w programie można znaleźć, wywołując SBRK () z przyrostem 0. Połączenie systemowe BRK () powoduje pęknięcie programu w pozycji segmentu danych końcowych. Segment danych końcowych jest zaokrąglony do następnej granicy, ponieważ pamięć wirtualna jest przypisana w jednostkach stron.
Wyjście kodu można wyświetlić, wykonując cytowaną poniżej instrukcję w Ubuntu 20.04 Terminal systemu operacyjnego Linux.
$ gcc brk1.CW przypadku, gdy GCC nie jest zainstalowany w Ubuntu 20.04 System operacyjny, zainstaluj go, uruchamiając dołączone polecenie poniżej w powładzie:
$ sudo apt instal gccWyjście jest wyświetlane w wyżej wymienionym zrzucie ekranu Prezentując rozmiar strony, adres przerwania programu, rozmiar char itp.
Wniosek
Ten artykuł dotyczył połączenia systemowego BRK () w języku programowania C. Staraliśmy się jak najlepiej wyjaśnić koncepcję połączenia systemowego BRK () w języku programowania C i jego użycie. Jeden z przykładów został szczegółowo wyjaśniony dla twojego zrozumienia. Wdrożenie tego przykładu za pomocą wymaganych zmian nauczy Cię użycie połączeń systemowych BRK () w języku programowania C.