Verwandte Systemaufrufe für Dateioperationen erstellen int creat(const char *Dateiname, mode_t Modus); Der Parameter mode gibt die Zugriffsberechtigungen der neu erstellten Datei an. Er und umask bestimmen zusammen die endgültigen Berechtigungen der Datei (mode & umask). umask stellt einige Zugriffsberechtigungen dar, die beim Erstellen der Datei entfernt werden müssen. Es betrifft nur die Lese-, Schreib- und Ausführungsberechtigungen. Die aufrufende Funktion ist int umask (int newmask). Offen int öffnen(const char *Pfadname, int Flags); Pfadname ist der Name der Datei, die wir öffnen möchten (einschließlich des Pfadnamens, standardmäßig ist es der aktuelle Pfad) FlaggenOffene Flagge
int open (const char *Pfadname, int flag, mode_t mode) Wenn das Flag O_CREATE ist, geben Sie das Modus-Flag an, um die Zugriffsrechte der Datei anzugeben. S_IRUSR Benutzer kann lesen S_IWUSR-Benutzer kann schreiben Der Benutzer S_IXUSR kann ausführen S_IRWXU Benutzer kann lesen, schreiben und ausführen Die Gruppe S_IRGRP kann lesen Die S_IWGRP-Gruppe kann schreiben Die Gruppe S_IXGRP kann ausführen Die Gruppe S_IRWXG kann lesen, schreiben und ausführen S_IROTH Andere können lesen S_IWOTH Andere können schreiben S_IXOTH Andere können ausführen S_IRWXO Andere können lesen, schreiben und ausführen S_ISUID Legt die Ausführungs-ID des Benutzers fest S_ISGID Setzt die Ausführungs-ID der Gruppe Das Modus-Flag kann auch Zahlen verwenden, um Dateiberechtigungen darzustellen: Jede Zahl kann 1 (Ausführungsberechtigung), 2 (Schreibberechtigung), 4 (Leseberechtigung), 0 (keine) oder eine Summe dieser Werte sein. Die erste Ziffer gibt die Einstellung der Benutzer-ID an Die zweite Ziffer gibt die Gruppen-ID an Das dritte Bit gibt das Berechtigungsbit des Benutzers an Die vierte Ziffer gibt die Berechtigungen der Gruppe an Die fünfte Ziffer gibt die Berechtigungen anderer an öffnen("test", O_CREAT, 10705); Die obige Anweisung ist gleichbedeutend mit: öffnen("test", O_CREAT, S_IRWXU | S_IROTH | S_IXOTH | S_ISUID ); Lesen und Schreiben int lesen(int fd, const void *buf, size_t Länge); int schreiben(int fd, const void *buf, size_t Länge); Der Parameter fd ist der Dateideskriptor, buf ist der Zeiger auf den Puffer, length ist die Größe des Puffers (in Bytes) und der Rückgabewert ist die Anzahl der tatsächlich gelesenen und geschriebenen Bytes. read() liest length Bytes aus der durch den Dateideskriptor fd angegebenen Datei in den Puffer, auf den buf zeigt, und der Rückgabewert ist die Anzahl der tatsächlich gelesenen Bytes Die write()-Implementierung schreibt length Bytes aus dem Puffer, auf den buf zeigt, in die Datei, auf die der Dateideskriptor fd zeigt, und der Rückgabewert ist die Anzahl der tatsächlich geschriebenen Bytes. Position Für zufällige Dateien können wir zufällige Speicherorte zum Lesen und Schreiben angeben: lseek() verschiebt den Lese-/Schreibzeiger der Datei um den Offset (der negativ sein kann) in Bytes relativ zum Ausgangspunkt. Wenn der Vorgang erfolgreich ist, wird der Dateizeiger relativ zum Dateikopf zurückgegeben. Der Wherece-Parameter kann die folgenden Werte annehmen:
Schließung int schließen(int fd); C-Bibliotheksfunktionsdateioperationen - unabhängig von der spezifischen Betriebssystemplattform Erstellen und Öffnen DATEI *fopen(const char *Pfad, const char *Modus); Der Wert des Modus r, rb Im Nur-Lese-Modus öffnen w, wb Nur zum Schreiben geöffnet. Wenn die Datei nicht existiert, wird sie erstellt, andernfalls wird sie abgeschnitten. a, ab werden im Anfügemodus geöffnet. Wenn die Datei nicht existiert, erstellen Sie sie r+, r+b, rb+ im Lese-/Schreibmodus öffnen w+, w+b, wh+ Offen zum Lesen und Schreiben. Wenn die Datei nicht existiert, wird eine neue Datei erstellt, andernfalls wird die Datei abgeschnitten. a+, a+b, ab+ Zum Lesen und Anhängen geöffnet. Wenn die Datei nicht existiert, erstellen Sie eine neue Datei Lesen und Schreiben int fgetc(DATEI *Stream); int fputc(int c, DATEI *stream); char *fgets(char *s, int n, DATEI *stream); int fputs(const char *s, DATEI *stream); int fprintf(DATEI *Stream, const char *Format, ...); int fscanf (DATEI *Stream, const char *Format, ...); size_t fread(void *ptr, size_t Größe, size_t n, DATEI *stream); size_t fwrite (const void *ptr, size_t Größe, size_t n, DATEI *stream); int fsetpos(DATEI *stream, fpos_t *pos); nt fsetpos(DATEI *stream, const fpos_t *pos); int fseek(DATEI *Stream, langer Offset, int woher); fread() liest n Felder aus dem Stream, jedes Feld hat die Größe Bytes, fügt die gelesenen Felder in das Zeichen-Array ein, auf das ptr zeigt, und gibt die Anzahl der tatsächlich gelesenen Felder zurück. write() schreibt n Felder aus dem Array, auf das der Puffer ptr zeigt, in den Stream, wobei jedes Feld size Bytes lang ist, und gibt die Anzahl der tatsächlich geschriebenen Felder zurück. Schließung int fclose (DATEI *stream); Verzeichnisstruktur des Linux-Dateisystems /bin----speichert die am häufigsten verwendeten grundlegenden Befehle wie ls, cp, mkdir usw. Alle Dateien in diesem Verzeichnis sind ausführbar. /boot----Einige Kerndateien, die beim Starten von Linux verwendet werden, darunter einige Verbindungsdateien und Image-Dateien wie vmlinuz, initrd.img /dev----Gerätedateispeicherverzeichnis. Anwendungen können auf tatsächliche Geräte zugreifen, indem sie diese Dateien lesen, schreiben und steuern. /etc----Konfigurationsdateien und Unterverzeichnisse, die für die Systemverwaltung erforderlich sind, wie z. B. Konfigurationsdateien für Benutzerkonten und Passwörter. /home----Das Home-Verzeichnis normaler Benutzer. Jeder Benutzer hat sein eigenes Verzeichnis, das normalerweise nach seinem Benutzerkonto benannt ist. /lib----Das Verzeichnis, in dem Bibliotheksdateien gespeichert sind, die grundlegendste gemeinsam genutzte dynamische Linkbibliothek des Systems, ähnlich der DLL-Datei in Windows. /lost+found----Normalerweise ist es leer. Wenn das System unerwartet abstürzt oder die Maschine unerwartet herunterfährt, werden einige Dateifragmente generiert und hier abgelegt. /mnt----Es ist praktisch für Benutzer, andere Dateisysteme vorübergehend zu mounten. Wenn Sie beispielsweise das CD-ROM-Laufwerk auf /mnt/ mounten, können Sie dieses Verzeichnis aufrufen, um den Inhalt des CD-ROM-Laufwerks anzuzeigen. Medien – Identifizieren Sie automatisch einige Geräte und mounten Sie sie in diesem Verzeichnis, z. B. USB-Sticks, optische Laufwerke usw. /opt----Verzeichnis zum Speichern zusätzlicher auf dem Host installierter Software /proc----Wenn das Betriebssystem ausgeführt wird, werden hier Prozess- und Kernelinformationen (wie CPU, Festplattenpartition, Speicherinformationen usw.) gespeichert. Es handelt sich um eine Abbildung des Systemspeichers und ist im Speicher vorhanden. Systeminformationen werden durch direkten Zugriff auf dieses Verzeichnis abgerufen. /root----Home-Verzeichnis von Benutzern mit Superprivilegien /sbin----Das Verzeichnis, in dem ausführbare Befehle von Benutzern mit Superprivilegien gespeichert werden. Normale Benutzer haben keine Berechtigung, Befehle in diesem Verzeichnis auszuführen. /tmp-----Temporäre Dateien speichern. /usr-----Das Verzeichnis, in dem Systemanwendungen und -dateien (wie Befehle und Hilfedateien) gespeichert werden, ähnlich dem Programmdateiverzeichnis unter Windows. /var-----In diesem Verzeichnis werden Verzeichnisse abgelegt, die häufig geändert werden, z. B. Protokolldateien /sys----Eine visuelle Darstellung des Kernel-Gerätebaums. Wenn ein Kernelobjekt erstellt wird, werden auch die entsprechenden Dateien und Verzeichnisse im Kernelobjekt-Subsystem erstellt. /initrd --- Wenn das initrd-Image während des Startvorgangs als temporäres Root-Dateisystem verwendet wird, wird das ursprüngliche anfängliche RAM-Dateisystem dem Verzeichnis /initrd zugeordnet, nachdem /linuxrc darauf ausgeführt wurde, um das echte Root-Dateisystem zu mounten. Linux-Dateisystem und Gerätetreiber Das könnte Sie auch interessieren:
|
<<: Vue implementiert einen einfachen Rechner
>>: Vue verwendet Filter zum Formatieren von Daten
Inhaltsverzeichnis Natives JS So senden Sie eine ...
Als ich kürzlich Apple.com/Ebay.com/Amazon.com/sh...
Die Ursache liegt darin, dass der Prozess zu eine...
Problembeschreibung Installieren Sie nginx auf Te...
Der Blogger hat MySQL ein oder zwei Monate lang n...
Inhaltsverzeichnis webpack5 Offizieller Start Bau...
Unter Linux können die Befehle cat, more und less...
Warum müssen wir die Browserkompatibilität von CS...
In diesem Artikel werden hauptsächlich 6 Lösungen...
Nachdem der Artikel „Dies wird eine Revolution“ er...
Einführung Der Meta-Tag ist ein Hilfstag im HEAD-...
1. Implementierungsprinzip des Scrollens Das Scro...
Inhaltsverzeichnis Geschäftsszenario: Wirkungsdem...
Vom Backend zum Frontend: was für eine Tragödie. A...
Inhaltsverzeichnis 1. Schreiben Sie ein HTML, das...