suchen

Linux-Dateioperationen

Sep 13, 2018 pm 06:24 PM
linux

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


  • S_IRWXG-Gruppe kann lesen, schreiben und ausführen

  • S_IROTH Andere können lesen

  • S_IWOTH Andere können schreiben

  • S_IXOTH Andere können

  • S_IRWXO Andere ausführen kann lesen, schreiben, ausführen

  • S_ISUID Legt die Ausführungs-ID des Benutzers fest

  • S_ISGID Legt die Ausführungs-ID der Gruppe fest
  • 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

  • Die zweite Ziffer bedeutet Gruppen-ID festlegen

  • Die dritte Ziffer stellt die eigenen Berechtigungsbits des Benutzers dar

  • Die vierte Ziffer gibt die Berechtigungen der Gruppe an

  • Die fünfte Ziffer stellt die Berechtigungen anderer dar
  • open("test", O_CREAT, 10705);
Die obige Anweisung entspricht:

open( "test", O_CREAT , S_IRWXU |. S_IXOTH |. S_IXOTH );

;

int write (int fd, const void *buf, size_t length);

Parameter fd Dateideskriptor, buf ist ein Zeiger auf den Puffer, Länge ist die Größe des Puffers (in Bytes), und der Rückgabewert ist die tatsächliche Anzahl der gelesenen und geschriebenen Bytes.


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:
int lseek(int fd, offset_t offset, int whence);

lseek() verschiebt den Lese- und Schreibzeiger der Datei relativ zu wherece um Offset-Bytes (kann ein negativer Wert sein). Wenn der Vorgang erfolgreich ist, wird die Position des Dateizeigers relativ zum Dateikopf zurückgegeben.

Der Parameter wherece kann die folgenden Werte verwenden:

SEEK_SET: relativ zum Anfang der Datei.
SEEK_CUR: Die aktuelle Position des relativen Datei-Lese- und Schreibzeigers.

SEEK_END: ​​​​relativ zum Ende der Datei.

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

Linux-Dateioperationen

  • /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

So führen Sie Lese- und Schreibvorgänge für Python-Dateien interaktiv mit Linux-Shell-Variablenbefehlen aus

Das obige ist der detaillierte Inhalt vonLinux-Dateioperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Mastering Linux -Operationen: Ein praktischer LeitfadenMastering Linux -Operationen: Ein praktischer LeitfadenApr 12, 2025 am 12:10 AM

Der Grund für das Beherrschen von Linux -Operationen ist die breite Palette von Anwendungsszenarien und leistungsfähigen Funktionen. 1) Linux ist für Entwickler, Systemadministratoren und Technologie -Enthusiasten geeignet und wird für Servermanagement, eingebettete Systeme und Containerisierungstechnologien verwendet. 2) Lernen von Linux kann mit der Dateisystemstruktur, der Shell -Verwendung, der Benutzerbereitstellung und dem Prozessmanagement beginnen. 3) Die Linux -Befehlszeile ist das Kernwerkzeug, das Befehle über die Shell wie LS, MKDIR, CD usw. ausführt und die Umleitung und Pipeline -Vorgänge unterstützt. 4) Die erweiterte Verwendung umfasst das Schreiben automatisierter Skripte wie Sicherungsskripte, mit TAR -Befehlen und bedingten Urteilen. 5) Zu den häufigen Fehlern gehören Berechtigungen, Pfade und Syntaxprobleme, die durch Echo, SET-X und $ debuggen werden können. 6) Vorschläge zur Leistungsoptimierung

Die 5 Säulen von Linux: Verständnis ihrer RollenDie 5 Säulen von Linux: Verständnis ihrer RollenApr 11, 2025 am 12:07 AM

Die fünf Säulen des Linux -Systems sind: 1. Kernel, 2. Systembibliothek, 3. Shell, 4. Dateisystem, 5. Systemwerkzeuge. Der Kernel verwaltet Hardware -Ressourcen und bietet grundlegende Dienste an. Die Systembibliothek bietet vorkompilierte Funktionen für Anwendungen. Die Shell ist die Schnittstelle, in der Benutzer mit dem System interagieren können. Das Dateisystem organisiert und speichert Daten. und Systemwerkzeuge werden für das Systemmanagement und die Wartung verwendet.

Linux -Wartungsmodus: Werkzeuge und TechnikenLinux -Wartungsmodus: Werkzeuge und TechnikenApr 10, 2025 am 09:42 AM

In Linux -Systemen kann der Wartungsmodus eingegeben werden, indem eine bestimmte Taste beim Start gedrückt wird oder einen Befehl wie "sudosystemctlrescue" verwendet. Der Wartungsmodus ermöglicht es Administratoren, die Wartung und Fehlerbehebung ohne Störung durch die Systeme durchzuführen, z. B. das Reparieren von Dateisystemen, das Zurücksetzen von Kennwörtern, das Patch -Sicherheitslücken usw.

Key Linux -Operationen: Ein AnfängerhandbuchKey Linux -Operationen: Ein AnfängerhandbuchApr 09, 2025 pm 04:09 PM

Linux -Anfänger sollten grundlegende Vorgänge wie Dateiverwaltung, Benutzerverwaltung und Netzwerkkonfiguration beherrschen. 1) Dateiverwaltung: Verwenden Sie MKDIR-, Touch-, LS-, RM-, MV- und CP -Befehle. 2) Benutzerverwaltung: Verwenden Sie die Befehle von UserAdd-, PassWD-, UserDel- und UsMod -Befehlen. 3) Netzwerkkonfiguration: Verwenden Sie IFConfig-, Echo- und UFW -Befehle. Diese Vorgänge sind die Grundlage für das Linux -Systemmanagement, und das Beherrschen kann das System effektiv verwalten.

Wie benutze ich Sudo, um Benutzern in Linux erhöhte Berechtigungen zu gewähren?Wie benutze ich Sudo, um Benutzern in Linux erhöhte Berechtigungen zu gewähren?Mar 17, 2025 pm 05:32 PM

In dem Artikel wird erläutert, wie die Sudo -Privilegien in Linux verwaltet werden, einschließlich Gewährung, Widerruf und Best Practices für Sicherheitsvorschriften. Der Hauptaugenmerk liegt auf der sicheren Bearbeitung /etc /sudoers und der Begrenzung des Zugangs. Charakterzahl: 159

Wie implementiere ich die Zwei-Faktor-Authentifizierung (2FA) für SSH in Linux?Wie implementiere ich die Zwei-Faktor-Authentifizierung (2FA) für SSH in Linux?Mar 17, 2025 pm 05:31 PM

Der Artikel enthält eine Anleitung zum Einrichten der Zwei-Faktor-Authentifizierung (2FA) für SSH unter Linux unter Verwendung von Google Authenticator, Detaillierung der Installations-, Konfigurations- und Fehlerbehebungsschritte. Es unterstreicht die Sicherheitsvorteile von 2FA, wie z. B. die verstärkte SEC

Wie überwache ich die Systemleistung unter Linux mithilfe von Tools wie Top, HTOP und VMSTAT?Wie überwache ich die Systemleistung unter Linux mithilfe von Tools wie Top, HTOP und VMSTAT?Mar 17, 2025 pm 05:28 PM

In dem Artikel werden die Leistung von Top, HTOP und VMSTAT zur Überwachung der Systemleistung der Linux -Systeme erläutert und deren eindeutige Funktionen und Anpassungsoptionen für eine effektive Systemverwaltung beschrieben.

Wie verwalte ich Softwarepakete unter Linux mithilfe von Paketmanagern (APT, YUM, DNF)?Wie verwalte ich Softwarepakete unter Linux mithilfe von Paketmanagern (APT, YUM, DNF)?Mar 17, 2025 pm 05:26 PM

In Artikel werden die Verwaltung von Softwarepaketen unter Linux mithilfe von APT, YUM und DNF besprochen, wobei die Installation, Updates und Entfernungen behandelt werden. Es vergleicht ihre Funktionen und Eignung für verschiedene Verteilungen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung