If you open a file with
O_APPEND (which is what
>> does) then each write to the file is preceded with a seek to the current end of the file. The seek and write are atomic, provided that you are writing less than a block of data (might work for more than a block, I disremember). The size of a block varies from one filesystem to another and depends on the platform, the size of the filesystem, the options with which the fs was created, the phase of the moon, and so on. It is *typically* of the order of 1 to 4 K.
Be aware that this race condition *does* exist in NFS. Which doesn't provide adequate locking to get around it. Yay.