Frage

Ich benutze fdopen einen Stream mit einer geöffneten Datei zugeordnet werden soll.

Wenn ich die Datei close(), ist der Strom automatisch auch distanzierte, und alle Stromspeicher an das Betriebssystem zurückgegeben, oder muss ich bewusst die fdopen'd Datei sein und es auf eine bestimmte Weise in der Nähe?

-Adam

War es hilfreich?

Lösung

close() ist ein Systemaufruf. Es wird den Dateideskriptor in dem Kernel schließen, wird aber den Dateizeiger und Ressourcen in libc nicht befreien. Sie sollten stattdessen fclose () auf dem FILE-Pointer verwenden, die auch Pflege Schließen den Dateideskriptor stattfinden wird.

Andere Tipps

Der Kernel verwaltet diese Ressourcen, und Sie haben keine Kontrolle über sie andere als die knapp die den Speicher freizugeben, wenn er will (spätestens Prozessbeendigung).

/ Allan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top