Funkce Fstat v C

Funkce Fstat V C



Funkce fstat() volá systém, aby vrátil informace (o nějakém souboru), které závisí na deskriptoru tohoto souboru. Tato funkce získává informace pro soubor, který je přidružen k deskriptoru souboru známému také jako „fildes“, a poté zapisuje tyto informace do paměťového místa, kam ukazuje vyrovnávací paměť. Návratový typ této funkce je celé číslo. Pokud je program úspěšně proveden, vrátí hodnotu „0“. V opačném případě vrátí funkci „-1“ v případě neúspěšného provedení. Chyba při provádění této funkce může být způsobena některými specifickými důvody, například pokud soubory funkce mají neplatný deskriptor pro soubor, pokud se chyba čtení pro vstup a výstup vyskytne ze souboru, a pokud místo v paměti (struktura), kde vyrovnávací paměť ukazuje na zápis informace o souboru nemá dostatek přidělené paměti pro velikost souboru.

Postup

Tento článek se řídí sekvenčním pořadím implementace funkce fstat() pro získání informací o souboru. Nejprve se naučíme syntaxi této funkce, parametry požadované pro tuto funkci. Tuto syntaxi pak použijeme k provedení některých příkladů pro funkci fstat().







Syntax

Způsob deklarace funkce fstat(), která umožňuje přístup programu k informacím o souboru, je uveden v následujícím řádku:



$ #include
$ int Stát ( int fildes , strukturovat stat * buf ) ;

Kdykoli musíme volat funkci v našem programu, musíme nejprve importovat hlavičkové soubory, které tuto funkci podporují, jako „sys/stat.h“. Návratový typ funkce je vždy „int“ a parametr obsahuje „fildes“ s datovým typem „int“. Fildes je deskriptor pro soubor, o kterém chceme vědět informace. Dalším parametrem, který je funkci dán, je ukazatel „buf“. Je to ukazatel „struct stat“, který ukazuje na strukturu, kam chceme uložit data o souboru. Toto je stručný popis vstupních parametrů pro funkci fstat().



Příklad

Používáme již zmíněný popis a spouštíme program, abychom získali informace o jakémkoli / konkrétním souboru prostřednictvím našeho programu. Tento program napíšeme v kompilátoru Microsoft Visual Studio C pro spuštění. Začneme příkladem tak, že nejprve vytvoříme projekt a poté jej přidáme do repozitářů C ve Visual Studiu. Chcete-li přidat projekt do souborů C, zahrneme „.c“ s názvem projektu a přidáme jej do zdrojového souboru projektu. Dalším krokem po vytvoření projektu je volání všech požadovaných knihoven pro funkce, které můžeme později v programu použít. Protože v tomto článku implementujeme příklad funkce fstat(), musíme zahrnout hlavičkový soubor „sys/stat.h“. Pro informace o souboru potřebujeme znát typ zařízení, kde soubor existuje. Abychom poznali typ dat pro zařízení, zařadíme hlavičku „type. h“ v programu.





Informace o souboru musí obsahovat čas, kdy byl soubor naposledy otevřen, a úpravu, která v něm byla provedena. Pro přístup k těmto funkcím volání času přidáme hlavičkový soubor „times. h“ a „fcntl. h“ záhlaví pro funkce oprávnění k souboru. Poslední záhlaví „stdio. h” je také součástí programu pro volání metod printf() a scanf() v programu. Soubory záhlaví, o kterých jsme diskutovali, aby byly zahrnuty do programu, jsou následující:

$ #include
$ #include
$ #include
$ #include
$ #include

Po úspěšném importu výše zmíněných hlavičkových souborů do programu nyní sestavujeme program, abychom získali informace o konkrétním souboru. Funkci s návratovým typem deklarujeme jako „int“ s názvem „main“. Do této hlavní funkce deklarujeme pole „char“ a přiřadíme mu jméno souboru, o kterém potřebujeme znát informaci. Poté definujeme „statistickou informaci“ s datovým typem „struct“. Tato struktura je místo, kam ukládáme informace o souboru.



Poté definujeme další proměnnou s názvem „file_descriptor“ s datovým typem „integer“. V podmínce „if“ požádáme o oprávnění pro operace čtení a zápisu pro soubor, pokud existuje, a předáme „S_IWUSR“ a název pole funkci „create()“, která vyžaduje oprávnění pro soubor, pokud existuje nebo jinak vytvořte nový soubor. Tuto funkci create() předáme podmínce „if“, která uvádí, že pokud je hodnota funkce create() menší než nula, vytvoří se chyba, že je třeba soubor vytvořit. Pokud se funkce fstat() s parametry jako „file_descriptor“ a „information“ a „adresa umístění, kde jsou uloženy informace o souboru“ nerovná nule, zobrazíme vrácenou hodnotu fstat(), což je informace o souboru. . A informace vytiskneme ve formě atributů, např. ID zařízení, ve kterém je soubor uložen, číslo Inode zařízení, režim ochrany souboru, ID uživatele, ID skupiny a číslo odkazu (pevná forma).

Po zobrazení těchto atributů vyjdeme z příkazů a zavřeme soubor pomocí metody close(). Poté soubor zrušte voláním metody unlink().

#include
#include
#include
#include
#include

hlavní ( ) {
char pole [ ] = 'amp.file' ;
strukturovat statistické informace ;
int deskriptor souboru ;
-li ( ( deskriptor souboru = vyrobeno ( pole , S_IWUSR ) ) < 0 )
chyba ( 'chyba vytvoření()' ) ;
jiný {
-li ( Stát ( deskriptor souboru , & informace ) != 0 )
chyba ( 'chyba fstat()' ) ;
jiný {
klade ( 'fstat() values:' ) ;
printf ( ' inode: %d \n ' , ( int ) info. st_ino ) ;
printf ( 'id_zařízení: %d \n ' , ( int ) info. st_dev ) ;
printf ( ' režim zařízení: %08x \n ' , info. st_mode ) ;
printf ( ' no_of_hard_links: %d \n ' , info. st_nlink ) ;
printf ( ' u_id: %d \n ' , ( int ) info. st_uid ) ;
printf ( ' g_id: %d \n ' , ( int ) info. st_gid ) ;
}
zavřít ( deskriptor souboru ) ;
odpojit ( pole ) ;
}
}

Program nejprve přistoupí k oprávnění pro souborovou operaci a poté v něm načte data a zapíše je do přiděleného paměťového místa. Atributy, které jsme dali programu zobrazit ze souboru, jsou zobrazeny ve výstupu.

Závěr

Pro přístup k informacím o souboru jsme použili funkci fstat(). Nejprve jsme se naučili syntaxi funkce fstat() vysvětlenou s úplným popisem parametrů funkce. Poté jsme pro tuto funkci napsali program, kde jsme nejprve přistoupili k oprávnění vlastníka souboru a poté si soubor přečetli a zobrazili atributy, které jsme chtěli z informací o souboru. Snažili jsme se, abychom vám umožnili porozumět konceptu fstat() a doufáme, že vám pomůže ve vašich programech.