fprintf - threadsafe? - i.e. with process linked against '-pthread'?
Joerg Sonnenberger
joerg at bec.de
Wed Oct 11 21:34:56 UTC 2017
On Wed, Oct 11, 2017 at 10:13:35AM +0100, Karl Pielorz wrote:
> Presumably (and from what I can see) fprintf is 'thread safe'? - And it also
> appears multiple threads could write to a single file using it (i.e. it
> provides for atomic writes so lines won't intermingle - the lines written
> don't seem to intermingle).
stdio does not provide atomic IO. If you have two file handles or even
just two separate FILE instances sharing the same file handle and two
threads or processes are writing to them concurrently, buffering will
result in seemingly random interwoven output. Even using non-buffered IO
can trigger the same behavior as there is internal blocking going on.
Try a printf that created i.e. 16K output or so in one way, it should
increase the chance of seeing this a lot.
Joerg
More information about the freebsd-hackers
mailing list