FSTAT -Funktion in c

FSTAT -Funktion in c

Die Funktion fstat () ruft das System auf, um die Informationen (bezüglich einer Datei) zurückzugeben, die vom Deskriptor dieser Datei abhängt. Diese Funktion erhält die Informationen für die Datei, die dem Dateideskriptor zugeordnet ist, das auch als „Fildes“ bezeichnet wird. Der Rückgabetyp dieser Funktion ist eine Ganzzahl. Es gibt den Wert "0" zurück, wenn das Programm erfolgreich ausgeführt wird. Andernfalls wird bei fehlgeschlagener Ausführung ein „-1“ zur Funktion zurückgegeben. Der Ausführungsfehler für diese Funktion kann auf bestimmte Gründe zurückzuführen sein, als wenn die Fildes der Funktion einen ungültigen Deskriptor für die Datei haben, wenn der Lesefehler für Eingabe und Ausgabe aus der Datei auftritt und ob der Speicherort (Struktur) wo Der Puffer zeigt auf das Schreiben der Dateiinformationen. Es hat nicht genügend Speicher für die Dateigröße zugewiesen.

Verfahren

Dieser Artikel folgt der sequentiellen Reihenfolge, um die Funktion fstat () zu implementieren, um die Dateiinformationen abzurufen. Wir lernen zunächst die Syntax für diese Funktion, die für diese Funktion erforderlichen Parameter. Dann verwenden wir diese Syntax, um einige Beispiele für die Funktion fstat () auszuführen.

Syntax

Die Methode zum Deklarieren der Funktion fstat (), mit der der Zugriff des Programms auf die Dateiinformationen in der folgenden Zeile erwähnt wird:

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

Wann immer wir die Funktion in unserem Programm aufrufen müssen, müssen wir die Header -Dateien zuerst importieren, die diese Funktion als „sys/ stat“ unterstützen.H". Der Rückgabetyp für die Funktion ist immer "int" und der Parameter enthält "Fildes" mit dem Datentyp "int". Fildes ist ein Deskriptor für die Datei, über die wir die Informationen wissen möchten. Ein weiterer Parameter, der der Funktion gegeben wird, ist der Zeiger „BUF“. Es handelt sich um einen Zeiger „Struct stat“, der auf die Struktur hinweist, in der wir die Daten über die Datei speichern möchten. Dies ist eine kurze Beschreibung der Eingabeparameter für die Funktion fstat ().

Beispiel

Wir verwenden die durchsichtig erwähnte Beschreibung und führen ein Programm aus, um die Informationen über jede / bestimmte Datei über unser Programm zu erhalten. Wir schreiben dieses Programm in den Microsoft Visual Studio C Compiler für die Ausführung. Wir beginnen mit dem Beispiel, indem wir zuerst ein Projekt erstellen und es dann zu den C -Repositories im Visual Studio hinzufügen. Um das Projekt zu den C -Dateien hinzuzufügen, schließen wir die “ein.c ”mit dem Projektnamen und fügen Sie ihn der Quelldatei des Projekts hinzu. Der nächste Schritt nach der Erstellung des Projekts besteht darin, alle erforderlichen Bibliotheken für die Funktionen anzurufen, die wir später im Programm verwenden können. Da wir das Beispiel für die Funktion fstat () in diesem Artikel implementieren, müssen wir die Header -Datei „SYS/ STAT.H ". Für die Dateiinformationen müssen wir den Gerätetyp wissen, an dem die Datei vorliegt. Um den Datentyp für das Gerät zu kennen, schließen wir den Header -Typ ein. H ”im Programm.

Die Dateiinformationen müssen die Zeit enthalten, in der die Datei zuletzt geöffnet wurde, und die darin vorgenommene Änderung. Um auf diese Zeit aufzurufen, fügen wir die Header -Datei „Zeiten hinzu. H ”und das„ fcntl. H ”Kopfzeile für die Dateiberechtigungsfunktionen. Der letzte Header “Stdio. Die Datei h ”ist auch im Programm enthalten, um die Methoden printf () und scanf () im Programm aufzurufen. Die Header -Dateien, die wir in das Programm aufgenommen haben, sind wie folgt:

$#inklusive
$#inklusive
$#inklusive
$#inklusive
$#inklusive

Nachdem die zuvor erwähnten Header-Dateien erfolgreich in das Programm importiert wurden, erstellen wir nun das Programm, um die Informationen über eine bestimmte Datei zu erhalten. Wir deklarieren die Funktion mit dem Rückgabetyp als „int“ mit dem Namen „Main“ mit dem Namen "Main". In dieser Hauptfunktion deklarieren wir ein „char“ -Array und weisen ihm den Namen der Datei zu, für die wir eine Informationen kennen müssen. Anschließend definieren wir eine "Statistikinformationen" mit dem Datentyp "Struktur". Diese Struktur ist ein Ort, an dem wir die Informationen über die Datei speichern.

Dann definieren wir eine andere Variable mit dem Namen "Datei_Descriptor" mit dem Datentyp als "Ganzzahl". In der „wenn Es existiert oder erstellt sonst eine neue Datei. Wir übergeben diese Funktion create () an die „wenn. Wenn der fstat () mit Parametern als "Datei_Descriptor" und "Informationen" und "die Adresse des Speicherorts, an dem die Dateiinformationen gespeichert sind", nicht gleich Null ist. Und wir drucken die Informationen in Form von Attributen, e.G. Geräte -ID, in der die Datei gespeichert ist, die Inode -Nummer des Geräts, der Schutzmodus der Datei, die Benutzer -ID, die Gruppen -ID und die Anzahl der Link (Hardform).

Nachdem wir diese Attribute angezeigt haben, kommen wir aus den Anweisungen und schließen die Datei mit der Methode close (). Verknüpfen Sie die Datei dann, indem Sie die Methode Unlink () aufrufen.

#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
hauptsächlich()
char Array [] = "Amp.Datei";
strukturstatsinformationen;
int sandeScriptor;
if (((ageedescriptor = creat) (Array, S_IWUSR)) < 0)
perror ("creat () error");
anders
if (fStat (fileedescriptor & Information) != 0)
perror ("fstat () error");
anders
puts ("fstat () Werte:");
printf ("Inode: %d \ n", (int) Info.st_ino);
printf ("device_id: %d \ n", (int) Info.st_dev);
printf ("Modus des Geräts: %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);

schließen (AnredeScriptor);
UNLINK (Array);

Das Programm greift zunächst auf die Berechtigung für die Dateioperation zu und liest dann die darin enthaltenen Daten und schreiben sie in den zugewiesenen Speicherort. Die Attribute, die wir dem Programm aus der Datei angezeigt haben, sind in der Ausgabe angezeigt.

Abschluss

Wir haben die Funktion fstat () verwendet, um auf die Dateiinformationen zuzugreifen. Wir haben zuerst die Syntax für die Funktion fstat () gelernt, die mit der vollständigen Beschreibung der Parameter der Funktion erklärt wurde. Anschließend haben wir ein Programm für diese Funktion geschrieben, in dem wir zuerst auf die Erlaubnis unseres Dateibesitzers zugegriffen haben, und dann die Datei gelesen und die Attribute angezeigt, die wir von den Informationen der Datei gewünscht haben. Wir haben unser Bestes versucht, das Konzept von fstat () zu verstehen, und wir hoffen, dass es Ihnen bei Ihren Programmen helfen würde.