Funkcja Fallate 2 C

Funkcja Fallate 2 C
„Funkcja Fallocate () jest używana tak, aby dzwoniący mógł bezpośrednio zmienić przestrzeń dysku przydzieloną dla pliku, do którego odwołuje się FD dla zasięgu bajtu początkowego w offset. Korzystając z Fallocate, możesz przekazać lub wstępnie wyrównać przestrzeń dysku, która została przypisana do pliku. Preallokacja jest szybko zakończona dla systemów plików, które wdrażają połączenie systemowe Fallocate, przydzielając bloki i wyznaczając je jako niezainicjowane, nie wymagając IO do bloków danych. Jest to o wiele szybsze niż tworzenie pliku, wkładając w niego wszystkie zer. Funkcja Falokate () zwraca status wyjścia sukcesu lub awarii 0 lub 1.

W tym podręczniku szczegółowo omówimy ten pomysł i podamy przykłady programów C, które korzystają z funkcji „Fallate ()”. Ponadto w tym podręczniku przejdziemy przez składnię funkcji „Fallate ()” i pokażemy, jak wysłać do niej parametry podczas programowania w C."

Składnia
Poniżej znajduje się składnia funkcji „Fallocate ()”: możesz łatwo uchwycić parametry tej funkcji „Fallokate ()” w kodzie C, patrząc na to.

int Fallate (int fd, int tryb, off_t, off_t, off_t len);

Operacja, która ma zostać zemdlona w określonym zakresie, jest określona przez parametr trybu. Fallocate () przydziela przestrzeń dysku w zakresie „Offset” i „Len” jako jego domyślne działanie (tryb wynosi zero). Jeśli „offset i len” to więcej niż zakres plików, rozmiar pliku będzie się dostosował. Każdy podregion w zakresie zdefiniowany przez „przesunięcie” i „len”, który był pusty przed połączeniem, będzie miał ustawioną wartość początkową na zero. To domyślne zachowanie, które ma na celu wdrożenie funkcji biblioteki POSIX Fallate (3) tak wydajnie, jak to możliwe, jest bardzo podobne do tej funkcji.

Lukratywne połączenie gwarantuje, że dalsze zapisy w zakresie zdefiniowanym przez „Len” i „Offset” nie zakończy się niepowodzeniem z powodu niewystarczającej przestrzeni dysku.

Przykład 1

Przykłady w tym podręczniku będą wykorzystywać Ubuntu 20.04. Instalowanie GCC wymaga przeprowadzenia kilku instrukcji po zainstalowaniu Ubuntu 20.04. Instalowanie kompilatora GCC pozwoli nam uruchomić ten kod programowania C w Ubuntu 20.04. Kiedy Ubuntu 20.04 ma załadowany kompilator, otwieramy edytor tekstu do kodowania i zaczynamy wprowadzać wiersze kodu, które używają funkcji „setenv ()” języka programowania C.

Na początku kodu C używamy kilku plików nagłówka. Jedyne, co musimy zrobić podczas pisania kodu C, jest dołączenie plików nagłówka; W przeciwnym razie nasz kod C nie będzie miał potrzebnych funkcji. Jak możesz zweryfikować w tej próbce, mamy „FCNTL. H ”plik nagłówka. Następnie standardowy plik wejściowy i wyjściowy nagłówek „Stdio.h, ”został umieszczony na drugim wierszu kodu. Następnie dodajemy drugi plik nagłówka „Errno”, wartość liczb całkowita Errno, która jest wytwarzana przez wywołania systemowe, a także niektóre metody biblioteczne w przypadku błędu zidentyfikowania czegoś, co poszło nie tak, jest zdefiniowane w Errno.H Plik nagłówka standardowej biblioteki programowania C.

Po tym mamy „ciąg. H, ”, który jest również plik nagłówka, który zawiera deklarację funkcji, typy, a także funkcje obsługi ciągów. Teraz mamy funkcję „main ()”, a także musimy zadeklarować tę funkcję jako typ danych „int”, więc umieszczamy tę funkcję tutaj jako „int main ()”. Następnie deklarujemy zmienną „FD” typu danych „int” i umieszczamy tutaj funkcję „Open ()”. Korzystamy z tej funkcji „Open ()”, która jest używana do czytania, pisania lub otwierania pliku dla obu.

Kiedy nie pracujesz w tym samym katalogu co plik, użyj bezwzględnej ścieżki, która zaczyna się od „/”. Podczas pracy w tym samym katalogu co plik użyj względnej ścieżki, która składa się tylko z nazwy pliku i jej rozszerzenia. Tutaj „0_wronly” oznacza, że ​​otwieramy plik tylko do pisania, a „O_Creat” służy do otrzymania ostrzeżenia, jeśli plik jest już obecny. S_irusr to globalna stała znaleziona w POSIX SYS/STAT. H Plik. Bit autoryzacji odczytu użytkownika jest tym, co się nazywa. Prefiks S_ może oznaczać „status”, „rusr” lub „odczyt użytkownika”. Następnie mamy „S_IWUSR”.

Dla właściciela pliku ustaw bit autoryzacji zapisu. Poniżej mamy warunek „jeśli” i umieszczamy warunek, że „FD” jest równy „-1”. Jeśli warunek jest prawdziwy, wówczas wykorzystywana jest funkcja „Perror ()”. Ten „Perror” jest wykorzystywany do drukowania komunikatu o błędzie na STDERR. Następnie ponownie zadeklarujemy i zainicjujemy zmienną „int” o nazwie „Status” i umieszczamy tutaj funkcję „Posx_Fallocate” i przekazuje trzy parametry. „FD” jest pierwszym parametrem, „0” jest wykorzystywany jako drugi parametr, a następnie mamy „100” jako trzeci parametr tej funkcji „Fallocate”.

Poniżej tego warunku instrukcji „jeśli” jest „status! = 0 ”. Jeśli to prawda, wówczas instrukcja „printf” zostanie wykonana do drukowania błędu na ekranie, a my również mamy „return 0” na końcu tego kodu.

Wniosek

Ten podręcznik pokazuje, jak korzystać z funkcji programowania „Falce ()”. Funkcja „Fallate ()” została w pełni opisana tutaj, wraz z przykładami używania jej w programowaniu C. Aby pomóc Ci zrozumieć, jak korzystać z funkcji C „Fallate ()” i jak ona zwraca wynik, dołączyliśmy również przykładowy kod. Jak już wyjaśniono, stosuje się metodę „Fallocate ()” w programowaniu C, aby dzwoniący mógł bezpośrednio zmienić przestrzeń dysku przydzieloną dla pliku, do którego wspomniany jest FD dla odległości bajtowej początkowej w przesunięciu i wybieraniu bajtów len. Mówiliśmy również o fakcie, że niektóre parametry muszą być przekazywane do funkcji „Fallate ()”. Spodziewamy się, że ten podręcznik pomoże w zrozumieniu funkcji programowania C, a ty będziesz mógł to zrobić sam.