Linux-Dateioperationen
Das Beispiel in diesem Artikel beschreibt die Methode der interaktiven Ausführung von Lese- und Schreibvorgängen für Python-Dateien und Befehlen für Linux-Shell-Variablen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Zugehörige Systemaufrufe für Dateioperationen
Create
int creat(const char *filename, mode_t mode);
Parameter mode gibt an new Die Zugriffsberechtigung der Datei, die zusammen mit umask die endgültige Berechtigung der Datei bestimmt (mode&umask), wobei umask einige Zugriffsberechtigungen darstellt, die beim Erstellen der Datei entfernt werden müssen. Es betrifft nur Lesen, Schreiben und Ausführung Berechtigungen. Die aufrufende Funktion ist int umask (int newmask).
Öffnen
int open(const char *pathname, int flags);
pathname ist der Dateiname, den wir öffnen möchten (einschließlich des Pfadnamens, der Standard ist der aktuelle Pfad)
Flags zum Öffnen markieren
O_RDONLY öffnet die Datei im schreibgeschützten Modus
O_WRONLY öffnet die Datei nur zum Schreiben
O_RDWR zum Lesen und Schreiben Öffnen Sie die Datei als
O_APPEND Öffnen Sie die Datei als Anhängen
O_CREAT erstellt eine Datei
O_EXEC wenn O_CREAT verwendet wird und die Datei bereits existiert, tritt ein Fehler auf
O_NOBLOCK öffnet eine Datei auf nicht blockierende Weise
O_TRUNC Wenn die Datei bereits existiert, löschen Sie den Inhalt der Datei
int open(const char *pathname, int flag, mode_t mode)
Wenn Flag O_CREATE ist, geben Sie das Modus-Flag an, um die Dateizugriffsberechtigungen anzugeben
S_IRUSR Benutzer kann lesen
S_IWUSR Benutzer kann schreiben
S_IXUSR Benutzer kann ausführen
S_IRWXU Benutzer kann lesen, schreiben, ausführen
S_IRGRP-Gruppe kann
- S_IWGRP-Gruppe kann schreiben
- S_IXGRP-Gruppe kann
- Das Modus-Flag kann auch Zahlen verwenden, um Dateiberechtigungen darzustellen:
Jede Zahl kann den Wert 1 (Ausführungsberechtigung), 2 (Schreibberechtigung), 4 (Leseberechtigung), 0 (keine) oder die Summe dieser Werte annehmen.
- Die erste Ziffer bedeutet das Festlegen der Benutzer-ID
- open("test", O_CREAT, 10705);
open( "test", O_CREAT , S_IRWXU |. S_IXOTH |. S_IXOTH );
;
read() liest Längenbytes aus der durch den Dateideskriptor fd angegebenen Datei in den Puffer, auf den buf zeigt, und der Rückgabewert ist die tatsächlich gelesene Bytezahl.
- Die Implementierung von write() schreibt Längenbytes aus dem Puffer, auf den buf zeigt, in den Dateideskriptor in der Datei, auf die fd zeigt, die Rückgabe Der Wert ist die Anzahl der tatsächlich geschriebenen Bytes.
Positionierung
Für zufällige Dateien können wir den Speicherort zum Lesen und Schreiben zufällig angeben:
SEEK_SET: relativ zum Anfang der Datei.
SEEK_CUR: Die aktuelle Position des relativen Datei-Lese- und Schreibzeigers.
Schließen
int close(int fd);
C-Bibliotheksfunktionsdateibetrieb – unabhängig von der spezifischen Betriebssystemplattform
Erstellen und öffnen Sie
FILE *fopen(const char *path, const char *mode);
fopen() implementiert das Öffnen der angegebenen Datei Dateiname, wobei der Modus der Öffnungsmodus Linux ist Das System unterscheidet nicht zwischen Binärdateien und Textdateien. Moduswert
r, rb im schreibgeschützten Modus geöffnet
- w, wb Im schreibgeschützten Modus öffnen. Wenn die Datei nicht existiert, wird die Datei erstellt, andernfalls wird die Datei abgeschnitten
a, ab werden im Anhängemodus geöffnet. Wenn die Datei nicht vorhanden ist, erstellen Sie die Datei
r+, r+b, rb+ Im Lese-/Schreibmodus öffnen
w+, w+b, wh+ öffnen sich im Lese- und Schreibmodus. Wenn die Datei nicht existiert, wird eine neue Datei erstellt, andernfalls wird die Datei abgeschnitten
a+, a+b , ab+ zum Lesen und Öffnen im Anhängemodus. Wenn die Datei nicht vorhanden ist, erstellen Sie eine neue Datei
Lesen und schreiben
int fgetc(FILE *stream);
int fputc(int c, FILE *stream);
char *fgets(char *s, int n, FILE *stream);
int fputs(const char *s, FILE *stream);
int fprintf (FILE * stream, const char *format, ...);
int fscanf (FILE *stream, const char *format, ...);
size_t fread(void *ptr, size_t size, size_t n , FILE * stream);
size_t fwrite (const void *ptr, size_t size, size_t n, FILE *stream);
int fsetpos(FILE *stream, fpos_t *pos);
nt fsetpos(FILE *stream, const fpos_t *pos);
int fseek(FILE *stream, long offset, int wherece);
fread() implementiert das Lesen von n Feldern aus dem Stream, jeweils Die Die Größe des Felds beträgt Bytes, und die gelesenen Felder werden in das Zeichenarray eingefügt, auf das ptr zeigt, und die tatsächliche Anzahl der gelesenen Felder wird zurückgegeben.
write() implementiert das Schreiben von n Feldern aus dem Array, auf das der Puffer ptr zeigt, jedes Mal in den Stream. Die Länge von Jedes Feld hat eine Größe von Bytes und die Anzahl der tatsächlich geschriebenen Felder wird zurückgegeben.
Schließen
int fclose (FILE *stream);
Verzeichnisstruktur des Linux-Dateisystems
/bin----speichert die am häufigsten verwendeten Grundbefehle, z. B. ls , cp, mkdir usw., die Dateien in diesem Verzeichnis sind alle ausführbar.
/boot----Einige Kerndateien, die beim Starten von Linux verwendet werden, einschließlich einiger Verbindungsdateien und Bilddateien, z B. vmlinuz, initrd.img
/dev----Gerätedateispeicherverzeichnis, die Anwendung übergibt diese Dateien zum Lesen , schreiben und steuern Sie das eigentliche Gerät.
/etc----Konfigurationsdateien und Unterverzeichnisse, die für die Systemverwaltung erforderlich sind, z. B. Benutzerkonto- und Passwortkonfigurationsdateien .
- /home----das Home-Verzeichnis für normale Benutzer hat im Allgemeinen sein eigenes Verzeichnis Der Name ist nach dem Konto des Benutzers benannt.
- /lib----Bibliotheksdateispeicherverzeichnis, die grundlegendste gemeinsam genutzte dynamische Linkbibliothek des Systems, ähnlich in die Windows-DLL-Datei hinein.
- /lost+found----Normalerweise leer, wenn das System unerwartet abstürzt oder die Maschine unerwartet herunterfährt. Einige Dateifragmente werden generiert und hier abgelegt.
- /mnt----praktisch für Benutzer, um vorübergehend andere Dateisysteme bereitzustellen, z. B. das optische Laufwerk /mnt/, geben Sie dieses Verzeichnis ein, um den Inhalt des CD-ROM-Laufwerks automatisch anzuzeigen Identifizieren Sie einige Geräte, die in diesem Verzeichnis bereitgestellt sind, z. B. USB-Laufwerke, CD-ROM-Laufwerke usw.
- /opt----Das Verzeichnis, in dem zusätzliche Installationssoftware auf dem Host gespeichert ist
- /proc----Wenn das Betriebssystem ausgeführt wird, werden Prozess- und Kernelinformationen (z. B. CPU, Festplattenpartition, Speicherinformationen usw.) angezeigt. usw.) werden hier gespeichert. Es handelt sich um eine Zuordnung des Systemspeichers, und Systeminformationen können durch direkten Zugriff auf dieses Verzeichnis abgerufen werden.
- /root----Das Home-Verzeichnis des Benutzers mit Superprivilegien
- /sbin----Das Verzeichnis, in dem Benutzer mit Superprivilegien ausführbare Befehle speichern. Normale Benutzer haben in diesem Verzeichnis keine Berechtigung zum Ausführen von Befehlen
- /tmp-----speichert temporäre Dateien.
- /usr-----Verzeichnis, in dem Systemanwendungen und Dateien (z. B. Befehle und Hilfedateien) Programme speichern , ähnlich dem Programmdateiverzeichnis unter Windows.
- /var-----Verzeichnisse, die häufig geändert werden, werden in diesem Verzeichnis abgelegt, z. B. Protokolldateien
- /sys----
Eine intuitive Widerspiegelung des Kernel-Gerätebaums. Wenn ein Kernel-Objekt erstellt wird, werden auch die entsprechenden Dateien und Verzeichnisse im Kernel-Objekt-Subsystem erstellt.
/initrd---Wenn das initrd-Image während des Startvorgangs als temporäres Root-Dateisystem verwendet wird Prozess: Nach der Ausführung von /linuxrc zum Mounten des echten Root-Dateisystems wird das ursprüngliche anfängliche RAM-Dateisystem dem Verzeichnis /initrd zugeordnet.
-
Linux-Dateisystem und Gerätetreiber Verwandte Empfehlungen: - Linux-Berechtigungen für übergeordnete Verzeichnisse wirken sich auf den Betrieb von Unterverzeichnisdateien aus
Das obige ist der detaillierte Inhalt vonLinux-Dateioperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die wichtigsten Unterschiede zwischen CentOS und Ubuntu sind: Ursprung (CentOS stammt von Red Hat, für Unternehmen; Ubuntu stammt aus Debian, für Einzelpersonen), Packungsmanagement (CentOS verwendet yum, konzentriert sich auf Stabilität; Ubuntu verwendet apt, für hohe Aktualisierungsfrequenz), Support Cycle (Centos) (CENTOS bieten 10 Jahre. Tutorials und Dokumente), Verwendungen (CentOS ist auf Server voreingenommen, Ubuntu ist für Server und Desktops geeignet). Weitere Unterschiede sind die Einfachheit der Installation (CentOS ist dünn)

CentOS -Installationsschritte: Laden Sie das ISO -Bild herunter und verbrennen Sie bootfähige Medien. Starten und wählen Sie die Installationsquelle; Wählen Sie das Layout der Sprache und Tastatur aus. Konfigurieren Sie das Netzwerk; Partition die Festplatte; Setzen Sie die Systemuhr; Erstellen Sie den Root -Benutzer; Wählen Sie das Softwarepaket aus; Starten Sie die Installation; Starten Sie nach Abschluss der Installation von der Festplatte neu und starten Sie von der Festplatte.

CentOS wurde eingestellt, Alternativen umfassen: 1. Rocky Linux (beste Kompatibilität); 2. Almalinux (kompatibel mit CentOS); 3. Ubuntu Server (Konfiguration erforderlich); 4. Red Hat Enterprise Linux (kommerzielle Version, bezahlte Lizenz); 5. Oracle Linux (kompatibel mit CentOS und RHEL). Bei der Migration sind Überlegungen: Kompatibilität, Verfügbarkeit, Unterstützung, Kosten und Unterstützung in der Gemeinde.

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Nachdem CentOS gestoppt wurde, können Benutzer die folgenden Maßnahmen ergreifen, um sich damit zu befassen: Wählen Sie eine kompatible Verteilung aus: wie Almalinux, Rocky Linux und CentOS Stream. Migrieren Sie auf kommerzielle Verteilungen: wie Red Hat Enterprise Linux, Oracle Linux. Upgrade auf CentOS 9 Stream: Rolling Distribution und bietet die neueste Technologie. Wählen Sie andere Linux -Verteilungen aus: wie Ubuntu, Debian. Bewerten Sie andere Optionen wie Container, virtuelle Maschinen oder Cloud -Plattformen.

Fehlerbehebung Schritte für fehlgeschlagene Docker -Bild Build: Überprüfen Sie die Dockerfile -Syntax und die Abhängigkeitsversion. Überprüfen Sie, ob der Build -Kontext den erforderlichen Quellcode und die erforderlichen Abhängigkeiten enthält. Sehen Sie sich das Build -Protokoll für Fehlerdetails an. Verwenden Sie die Option -Target -Option, um eine hierarchische Phase zu erstellen, um Fehlerpunkte zu identifizieren. Verwenden Sie die neueste Version von Docker Engine. Erstellen Sie das Bild mit--t [Bildname]: Debugg-Modus, um das Problem zu debuggen. Überprüfen Sie den Speicherplatz und stellen Sie sicher, dass dies ausreicht. Deaktivieren Sie Selinux, um eine Störung des Build -Prozesses zu verhindern. Fragen Sie Community -Plattformen um Hilfe, stellen Sie Dockerfiles an und erstellen Sie Protokollbeschreibungen für genauere Vorschläge.

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)
