Come posso fare in modo che più thread possano scrivere su uno stream (cioè un FILE *) senza fare interleaving con il loro output?
NON so a priori quanti sono i thread.
Ogni thread conosce il nome del file su cui scrivere in modo interattivo DOPO che è partito.
C'è quindi la possibilità che due o più thread vadano a scrivere sullo stesso file, ma non si sa a priori.
In pratica, quello che cerco è un lock che possa funzionare a livello di thread.
Ho letto in giro che esistono funzioni come flockfile() ... l'ho testato, ma sembra che non sia sufficiente.
Credo che la motivazione risieda nel fatto che flock() imponga un lock sullo stream, ma ogni thread apre il SUO stream, seppur verso lo stesso file fisico ...
Quindi, come si può fare?
E' possibile lockare proprio il file, in modo che chiunque tenti di aprire uno stream verso di esso se ne accorga?