Funkcja FTELL w C

Funkcja FTELL w C
Podobnie jak wiele innych języków programowania, język C wymyślił wiele funkcji wbudowanych. Funkcje te zostały dodane w języku C, aby wykonywać różne funkcje na różnych poziomach.

Jedną z funkcji jest funkcja „ftell ()” koncepcji składania C. Ta funkcja jest najprawdopodobniej używana do odczytania istniejącej lokalizacji pliku dostarczonego strumienia w stosunku do początku pliku. Po przesunięciu wskaźnika dokumentu do ostatniej lokalizacji dokumentu, ta metoda jest zarabia, aby pobrać ogólny rozmiar zestawu danych. Obecna lokalizacja jest zwracana w długim formacie, a dokument może zawierać ponad 32767 bajtów informacji. W ten sposób postanowiliśmy pokryć C ftell () w Ubuntu 20.04 System.

Zacznij od uruchomienia terminali Ubuntu, ja.mi., Ctrl+alt+t. Musimy zrobić nowy plik tekstowy w folderze domowym naszego systemu Ubuntu. Skorzystaj z instrukcji dotykowych, aby to zrobić. Idź w kierunku folderu domowego systemu Linux i otwórz nowo utworzony plik, podwójnie naciskając. Dodaj w nim dane tekstowe, zapisz i zamknij.

Możesz zobaczyć, że utworzyliśmy plik.plik txt i dodaj w nim poniżej podsumowujące dane. Będziemy wykorzystywać ten plik w naszych bliskich przykładach.

plik $ cat.tekst

Przykład 01:

Zrobimy nasze pierwsze przykłady tego artykułu. Musisz utworzyć nowy plik typu C w swoim systemie za pomocą instrukcji dotyku Ubuntu wraz z nazwą pliku za pomocą „.C ”rozszerzenie. Ten plik jest potrzebny do otwarcia w jednym z redaktorów Ubuntu, aby użyć go do kodu. Możesz użyć edytora VIM, SMS lub NANO. Do tej pory używamy edytora „GNU Nano”, aby nasz kod był bardziej atrakcyjny.

$ Touch Ftell.C
$ nano ftell.C

Kiedy plik zostanie otwarty w edytorze GNU Nano, będzie początkowo pusty. Musimy rozpocząć kod C od użycia nagłówków, najprawdopodobniej „stdio.H". Będziemy wykonywać nasz kod w ramach funkcji Main () tego kodu.

Rozpocznij funkcję main () typu „int”. Zadeklarowaliśmy deskryptor pliku typu wskaźnika za pomocą obiektu pliku. Deklarowana jest również inna zmienna typu liczb całkowitych, i.mi., "długość". Teraz musimy otworzyć już istniejący plik tekstowy z naszego systemu za pomocą funkcji fopen () pliku C, aby odczytać jego dane z zapisami odczytu, i.mi., "R". Jeśli plik zostałby pomyślnie otwarty, deskryptor pliku zostanie zwrócony z pewną wartością liczb całkowitą, najprawdopodobniej „1”.

Korzystaliśmy z instrukcji „jeśli”, aby sprawdzić, czy wartość deskryptora pliku, którą właśnie otrzymaliśmy, jest zerowa, czy nie. Jeśli tak, wywoła metodę CRROR () C, aby wygenerować monit o błędzie, i.mi., „Jest jakiś błąd”. Po tej instrukcji „jeśli”, jeśli plik zostanie pomyślnie otwarty, będziemy używać funkcji Ceee (), aby przenieść wskaźnik na koniec pliku.

Musimy wykorzystać opcję Seek_end jako trzeci argument funkcji fseek (). 0 w tej funkcji służy do wyszukiwania wskaźnika z 0 pozycji. Długość całkowitego rozmiaru pliku została uzyskana z użycia funkcji ftell ().

Plik został zamknięty z funkcją fclose () wykorzystującą w niej deskryptor pliku. Teraz instrukcja PrintF jest tutaj, aby wyświetlić całkowite bajty danych w naszym pliku tekstowym za pomocą zmiennej „długości”. Zapisz plik kodu w skrócie Ctrl+S.

#włączać
void main ()
Plik *fd;
długość;
fd = fopen („plik.txt "," r ");
if (fd == null)
Perror („jest pewien błąd”);
zwrot (-1);

fseek (fd, 0, szukają);
długość = ftell (fd);
fclose (FD);
printf („Nasz rozmiar pliku: %d bajty \ n”, len);
zwrot (0);

Wyjdź z edytora nano z skrótem CTRL+x skompiluj kod C za pomocą kompilatora „GCC”. Po tym uruchom kod „za pomocą”./A.OUT ”polecenie. Możesz zobaczyć, że nasz plik tekstowy ma w sumie 370 bajtów.

$ gcc ftell.C
$ ./A.na zewnątrz

Przykład 02:

Weźmy nowy przykład, aby użyć funkcji Ftell () C. Użyj tego samego pliku kodu, aby zaktualizować nasz kod. Użyj „stdio.H ”nagłówek i uruchom funkcję main (). Użyj deskryptora pliku typu „F”, aby otworzyć plik tekstowy „.txt ”w trybie odczytu. Zadeklaruj szereg rozmiaru 10, i.mi., "A". Używamy funkcji FSCANF () zgłoszenia C do zeskanowania pierwszego ciągu z pliku tekstowego o nie więcej niż 10 literach.

Instrukcja printf () używa deskryptora pliku w funkcji ftell () do wyświetlania długości pierwszego ciągu z jego pliku tekstowego.

#włączać
void main ()
Plik *f = fopen („plik.txt "," r ");
Char A [10];
fscanf (f, „%s”, a);
printf („Pozycja wskaźnika: %ld \ n”, Ftell (f);
zwrot (0);

Po tej kompilacji kodu i uruchomieniu ten plik pokazuje nam wyjście, i.mi., Położenie wskaźnika po 1St ciąg to 4, jak pokazano poniżej.

$ gcc ftell.C
$ ./A.na zewnątrz

Zróbmy pierwszy ciąg w pliku.plik txt nieco dłużej za pomocą prostej edycji.

plik $ cat.tekst

Teraz użyj tej samej ilości kodu bez aktualizacji/zmiany, aby zobaczyć, jak wynika. Używamy tablicy rozmiaru 10 dla tablicy „A”. Jeśli rozmiar jest mniejszy, wyświetli całkowity rozmiar pierwszego ciągu, i.mi., długość, ale pokazuj również wyjście na obszarze wyjściowym.

Wykonanie tego kodu pokazuje nam, że rozmiar to 28, ale program jest roztrzaskany, ponieważ pierwszy ciąg ma 28 rozmiarów i używasz obszaru o rozmiarze 10.

$ gcc ftell.C
$ ./A.na zewnątrz

Wniosek:

W tym artykule omówiono drobne szczegóły korzystania z funkcji FTELL () C, aby uzyskać rozmiar danych wykorzystywanych w jakimś konkretnym dokumencie. Omówiliśmy dwie proste ilustracje, aby wyjaśnić pojęcie funkcji Ftell w języku programowania C.