Aby operacja mogła zostać uznana za 'atomową', musi spełnić jeden warunek - nic nie może jej przerwać. Standard POSIX ustala w /usr/include/posix1_lim.h, iż maxymalny rozmiar bufora dla operacji atomowej na potoku to:
#define _POSIX_PIPE_BUF 512
Czyli do 512 bajtów może zostać zapisanych lub odczytanych atomowo z potoku. Jeżeli wartość ta zostanie przekroczona operacja zostanie podzielona i nie będzie atomowa. Pod Linuxem limit dla operacji atomowej został zdefiniowany w 'linux/limits.h' na:
#define PIPE_BUF 4096
Jak widzisz Linux łagodzi wymagania POSIX, mogę dodać, iż całkiem rozsądnie. Atomowość operacji na potoku jest ważna gdy więcej niż jeden proces jest wykonywany ( FIFO ). Dla przykładu: jeżeli ograniczenie zostało przekroczone, a więcej niż jeden proces zapisują do potoku, dane zostaną przeplecione lub nadpisane (chunked). Innymi słowy, proces może zapisać dane do potoku, pomiędzy zapisami czynionymi przez inny.