Funkcja FSTAT w C

Funkcja FSTAT w C

Funkcja fstat () wywołuje system, aby zwrócić informacje (dotyczące niektórych plików), które zależy od deskryptora tego pliku. Ta funkcja uzyskuje informacje dla pliku powiązanego z deskryptorem pliku znanego również jako „Fildes”, a następnie zapisuje te informacje w miejscu pamięci, w którym wskazuje bufor. Typ powrotu tej funkcji jest liczbą całkowitą. Zwraca wartość „0”, jeśli program zostanie pomyślnie wykonywany. W przeciwnym razie zwraca „-1” do funkcji w przypadku nieudanego wykonania. Błąd wykonywania tej funkcji może wynikać z niektórych konkretnych powodów, takich jak jeśli Fildes of Funkcja ma nieprawidłowy deskryptor pliku, jeśli błąd odczytu dla danych wejściowych i wyjściowych występuje z pliku, a jeśli lokalizacja pamięci (struktura) gdzie gdzie Bufor wskazuje na zapisanie informacji o pliku nie ma wystarczającej ilości pamięci dla rozmiaru pliku.

Procedura

W tym artykule następuje kolejność sekwencyjna, aby wdrożyć funkcję fstat (), aby uzyskać informacje o pliku. Najpierw uczymy się składni dla tej funkcji, parametrów wymaganych dla tej funkcji. Następnie używamy tej składni do wykonania niektórych przykładów funkcji fstat ().

Składnia

Metoda zadeklarowania funkcji fstat (), która umożliwia dostęp do programu do informacji o pliku, jest wymieniona w następującym wierszu:

$#obejmują
$ int fstat (int fildes, struct stat *buf);

Ilekroć musimy wywołać funkcję w naszym programie, musimy najpierw zaimportować pliki nagłówka, które obsługują tę funkcję jako „SYS/ STAT.H". Typ powrotu dla funkcji jest zawsze „int”, a parametr zawiera „Fildes” z typem danych „INT”. Fildes jest deskryptorem pliku, o którym chcemy znać informacje. Kolejnym parametrem podanym funkcji jest wskaźnik „BUF”. Jest to wskaźnik „struktur”, który wskazuje na strukturę, w której chcemy przechowywać dane o pliku. Jest to krótki opis parametrów wejściowych dla funkcji fstat ().

Przykład

Używamy przenikliwie wspomnianego opisu i wykonujemy program, aby uzyskać informacje o dowolnym / konkretnym pliku za pośrednictwem naszego programu. Piszemy ten program w kompilatorze Microsoft Visual Studio C. Zaczynamy od przykładu od najpierw utworzenia projektu, a następnie dodając go do repozytoriów C w Studio Visual. Aby dodać projekt do plików C, dołączamy „.c ”z nazwą projektu i dodaj go do pliku źródłowego projektu. Następnym krokiem po utworzeniu projektu jest wywołanie wszystkich wymaganych bibliotek dla funkcji, z których możemy użyć później w programie. Ponieważ w tym artykule wdrażamy przykład funkcji FSTAT (.H ". W przypadku informacji o pliku musimy znać typ urządzenia, w którym plik istnieje. Aby poznać typ danych urządzenia, włączamy nagłówek „Typ. h ”w programie.

Informacje o pliku muszą zawierać czas, w którym plik został ostatnio otwarty i modyfikację, która została w nim dokonana. Aby uzyskać dostęp do tych funkcji wywoływania czasu, dodajemy plik nagłówka „czasy. h ”i„ fcntl. H ”nagłówek dla funkcji uprawnienia pliku. Ostatni nagłówek „Stdio. Plik H ”jest również zawarty w programie, aby wywołać metody printf () i scanf () w programie. Pliki nagłówka, które omówiliśmy, aby zostać zawarte w programie, są następujące:

$#obejmują
$#obejmują
$#obejmują
$#obejmują
$#obejmują

Po z powodzeniem zaimportowane do programu wcześniej wspomniane pliki nagłówka, aby uzyskać informacje o określonym pliku. Oświadczamy, że funkcja ma typ powrotu jako „int” o nazwie „Main”. W tej głównej funkcji deklarujemy tablicę „char” i przypisujemy jej nazwę pliku, dla którego musimy znać informacje. Następnie definiujemy „informacje o statystyce” z typem danych „struct”. Ta struktura to miejsce, w którym przechowujemy informacje o pliku.

Następnie definiujemy inną zmienną o nazwie „File_Descriptor” z typem danych jako „całkowitą”. W „If Ward” prosimy o zgodę na operacje odczytu i zapisu dla pliku, jeśli istnieje, przekazanie „S_IWUSR” i nazwy tablicy do funkcji „Utwórz ()”, która wymaga uprawnień do pliku, jeśli jeśli Istnieje lub utworzy nowy plik, w przeciwnym razie. Przekazujemy tę funkcję Create () do „IF Work”, która stwierdza, że ​​wartość funkcji create () jest mniejsza niż zero, a następnie tworzy błąd, który należy utworzyć plik. Jeśli fstat () z parametrami jako „File_Descriptor” i „Informacje” i „Adres lokalizacji, w której przechowywane są informacje o pliku” nie jest równe zero, wyświetlamy zwróconą wartość fstat (), która jest informacją pliku. I drukujemy informacje w postaci atrybutów, e.G. Identyfikator urządzenia, w którym przechowywano plik, liczba inodowych urządzenia, tryb ochrony pliku, identyfikator użytkownika, identyfikator grupy i numer łącza (formularz twardy).

Po wyświetleniu tych atrybutów wychodzimy z instrukcji i zamykamy plik za pomocą metody Close (). Następnie unlin Plik, wywołując metodę unina ().

#włączać
#włączać
#włączać
#włączać
#włączać
główny()
char Array [] = "amp.plik";
STRUCT INFORMACJE STAT;
int Filedescriptor;
if ((fileDescriptor = create (tablica, s_iwusr)) < 0)
Perror („creat () error”);
w przeciwnym razie
if (FSTAT (FileDescriptor i informacja) != 0)
Perror („fstat () błąd”);
w przeciwnym razie
Puts („fstat () wartości:”);
printf („INODE: %d \ n”, (int) informacje.st_ino);
printf („device_id: %d \ n”, (int) informacje.st_dev);
printf („Tryb urządzenia: %08x \ n”, informacje.st_mode);
printf („no_of_hard_links: %d \ n”, informacje.st_nlink);
printf („u_id: %d \ n”, (int) informacje.st_uid);
printf („g_id: %d \ n”, (int) informacje.st_gid);

Zamknij (SileDescriptor);
unlink (tablica);

Program najpierw uzyska dostęp do uprawnienia do operacji pliku, a następnie odczytuje w nim dane i zapiszą je w przydzielonej lokalizacji pamięci. Atrybuty, które podaliśmy program do wyświetlania z pliku, są pokazane na wyjściu.

Wniosek

Użyliśmy funkcji fstat (), aby uzyskać dostęp do informacji o pliku. Najpierw nauczyliśmy się składni dla funkcji FSTAT () wyjaśnionej z pełnym opisem parametrów funkcji. Następnie napisaliśmy program dla tej funkcji, w którym najpierw uzyskaliśmy zgodę naszego właściciela pliku, a następnie przeczytaliśmy plik i wyświetliśmy atrybuty, które chcielibyśmy z informacji o pliku. Staraliśmy się jak najlepiej, pozwalając ci zrozumieć koncepcję fstat () i mamy nadzieję, że pomoże ci to w twoich programach.