GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich einen Dateizeiger ( FILE* fp ) in einen Dateideskriptor (int fd) umwandeln?

Auch wenn fileno(FILE *) einen Dateideskriptor zurückgeben kann, seien Sie SEHR vorsichtig, den Puffer von stdio nicht zu umgehen. Wenn Pufferdaten vorhanden sind (entweder Lese- oder nicht geleerte Schreibvorgänge), können Lese-/Schreibvorgänge aus dem Dateideskriptor zu unerwarteten Ergebnissen führen.

Um eine der Nebenfragen zu beantworten, um einen Dateideskriptor in einen Dateizeiger umzuwandeln, verwenden Sie fdopen(3)


Die richtige Funktion ist int fileno(FILE *stream) . Es kann in <stdio.h> gefunden werden , und ist ein POSIX-Standard, aber kein Standard-C.


Linux
  1. So konvertieren Sie Dateien in UTF-8-Codierung unter Linux

  2. Wie kann ich eine Datei unter Linux symbolisch verknüpfen?

  3. Wie funktionieren Linux-Dateideskriptorbeschränkungen?

  4. Wie kann ich in jedem Ordner eine Datei erstellen?

  5. So konvertieren Sie eine Zeichenfolge in eine Ganzzahl in UNIX

So konvertieren Sie Raw-Kamerabilder in JPEG in Linux

So konvertieren Sie eine Windows-Datei in eine UNIX-Datei

Wie konvertiere ich einen Symlink in eine normale Datei?

Wie konvertiere ich eine .img-Datei in VHD?

Wie kann ich eine Datei oder ein Verzeichnis namens \ entfernen?

So konvertieren Sie eine TAR-Datei in eine ISO-Datei