Sie können einen FILE-Stream aus einem Dateideskriptor mit fdopen
erstellen.
Um eine Zeile aus einem Dateideskriptor generisch zu bekommen, müssen Sie das Betriebssystem für ein Zeichen nach dem anderen fragen, und das ist sehr ineffizient. (Die in POSIX-Shells eingebaute read
funktioniert wie diese - sie liest Zeilen sehr ineffizient durch Abrufen eines Bytes.)
FILE-Streams fragen in Batch-Daten nach Daten vom Betriebssystem, was die Effizienz verbessert, der Dateideskriptor jedoch nicht eine zurückspulbare Datei sein - es könnte ein Socket oder eine Pipe sein, und wenn Sie nach 100 Zeichen fragen und das dritte Zeichen dieses 100 Stapels das Newline-Zeichen ist, gibt es keine Möglichkeit, das Lesen der 97 Zeichen danach rückgängig zu machen.
'getline' ist nicht von der C-Norm, ich nehme an, Sie meinen die POSIX-Funktion? –
Begriff Dateideskriptor ist so subjektiv, dass es alles von einer IOFile zu einem Socket sein kann. so lesen Zeile möglicherweise nicht eine richtige Methode zu implementieren, es sei denn, es ist sehr viel mit FILEs –