Si vous liez statiquement le runtime, l'autre option consiste à écrire votre propre version de mktemp
dans un fichier objet. L'éditeur de liens devrait préférer votre version sur la version d'exécution.
Modifier: Merci à Jason Coco pour avoir signalé un malentendu majeur que j'ai eu dans mktemp
et ses proches. Celui-ci est un peu plus facile à résoudre maintenant. Puisque l'éditeur de liens préférera une version dans un fichier objet, il vous suffit d'écrire mktemp
en termes de mkstemp
.
Les seules difficultés sont le nettoyage des descripteurs de fichiers que mkstemp
reviendra à vous et rendra tout thread sûr. Vous pouvez utiliser un tableau statique de descripteurs et une fonction atexit
-enregistrée pour le nettoyage si vous pouvez mettre un plafond sur le nombre de fichiers temporaires dont vous avez besoin. Sinon, utilisez simplement une liste chaînée à la place.
Utilisez mkstemp au lieu de mktemp. –
Quelle est la raison pour laquelle vous devez utiliser mktemp? –