Wenn Sie die Laufzeit statisch verknüpfen, besteht die andere Möglichkeit darin, Ihre eigene Version mktemp
in eine Objektdatei zu schreiben. Der Linker sollte Ihre Version gegenüber der Runtime-Version bevorzugen.
Bearbeiten: Danke an Jason Coco für das Hinweis auf ein großes Missverständnis, das ich in mktemp
und seine Verwandten hatte. Dieser ist jetzt etwas einfacher zu lösen. Da der Linker eine Version in einer Objektdatei bevorzugen wird, müssen Sie nur mktemp
in Bezug auf mkstemp
schreiben.
Die einzigen Schwierigkeiten sind die Bereinigung der Dateideskriptoren, die mkstemp
zu Ihnen zurückkehrt und alles Thread sicher macht. Sie können ein statisches Array von Deskriptoren und eine atexit
-registrierte Funktion zur Bereinigung verwenden, wenn Sie festlegen können, wie viele temporäre Dateien Sie benötigen. Wenn nicht, verwende stattdessen eine verkettete Liste.
Verwenden Sie mkstemp anstelle von mktemp. –
Was ist der Grund, dass Sie mktemp verwenden müssen? –