>Stream-writes [pipe] are not atomic, and your message can theoretically get >cut in half and interleaved with another process writing the same fifo.
Any pipe, whether named or not, IS atomic so long as the datagrams in question are smaller than PIPE_BUF in size. This has been true since Day 1, in every Unix worthy of the name. You have to be careful on the reads, though: you need to embed the size of the datagram into itself so that you can be sure you don't get them packed together. If the datagrams are of fixed size, then you don't even need this. Most of the pipes I use this way have a datagram whose first field is the size. Atomic write(2) of each datagram into the pipe. The reader does a read(2) of the size field, followed by a read sized to get the rest of the datagram. No muss, no fuss, and pretty darned fast, too. And it works _everywhere_, on every Unix/Linux/whateverix version known to Man. -- Jim _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox