Was ist der Unterschied zwischen ftello/fseeko und fgetpos/fsetpos? Bei beiden scheint es sich um Dateizeiger-Getting/Setting-Funktionen zu handeln, die undurchsichtige Offset-Typen verwenden, um manchmal 64-Bit-Offsets zuzulassen.ftello/fseeko vs fgetpos/fsetpos
Werden sie auf verschiedenen Plattformen oder nach verschiedenen Standards unterstützt? Ist der Offset-Typ flexibler?
Und übrigens, ich bin bewusst, fgetpos/fsetpos and ftell/fseek, aber das ist nicht ein Duplikat. Diese Frage fragt nach ftell/fseek, und die Antwort ist nicht für ftello/fseeko.
Beachten Sie, dass das von 'ftello' zurückgegebene' off_t 'eigentlich kein undurchsichtiger Datentyp ist; es ist nur eine vorzeichenbehaftete Ganzzahl. Je nach Plattform und Kompilierungsflags kann es sich jedoch auch um 32-Bit oder 64-Bit handeln. In ähnlicher Weise ist 'fpos_t' möglicherweise nicht 64-Bit, wenn' _FILE_OFFSET_BITS'! = 64. – nneonneo
Ich denke, was ich mit einem undurchsichtigen Datentyp meinte ist, dass es keinen festen Typ im Benutzercode hat. Ich denke, es ist nicht ganz undurchsichtig, weil der Datentyp nur zur Kompilierungszeit, nicht zur dynamischen Verbindungszeit geändert werden kann. –
Ah. Normalerweise verwende ich Opaque im Sinne von "Struktur mit nicht-öffentlichem Layout", wie zB fpos_t. – nneonneo