On Sat, 14 Apr 2012 09:45:50 -0700, John Wendel wrote: > On 04/14/2012 08:20 AM, Amadeus W.M. wrote: >>> If you really would like to get output in sequence, write to a pipe, >>> and have a reader process drain the pipe to a logfile. It's pretty >>> easy; look at "mknod" with the 'p' option, or "mkfifo". I'd still >>> suggest tagging each output line with an identifier and sequence >>> number. >>> >> For the sake of the argument, assume I echo 500 As, 500 Bs and 500 Cs. >> >> I don't care which process the output is coming from. It doesn't matter >> which order the As, Bs and Cs are output. All I care about is that I >> don't get 349As followed by 245Bs, etc. I want to see blocks of 500 >> each. >> >> I don't see how echoing into a pipe would change the problem. >> Theoretically, if several processes (e.g. echo) are running in the >> background, e.g. on a round robin basis, then potentially I could see >> random sequences of As, Bs and Cs. It doesn't seem to be the case in >> practice though. So which is it? >> >> This has to do with the operating system internals, it's not a trivial >> question. >> > Actually it is semi-non-trivial. :-) > > Unix/Linux makes the following guarantee ... > > Multiple processes that open the same file for writing each maintain > their own file positions, so they may overwrite the output of another > process, unless the processes all open the file with the "O_APPEND" > option. With the "O_APPEND" option, the system guarantees that the > entire data from a single write by a process will be written to the end > of the file as a indivisible block and will not be mixed with the output > from another process. Without "O_APPEND", data from multiple processes > may be intermixed in any order, or may seem to "disappear" (is > overwritten by other data). > > Of course, if you didn't write the code that is doing the output, you'll > have to examine the source to see if it uses the "O_APPEND" open option. > This may be non-trivial. > > Regards, > > John Now we're getting somewhere. Any references for that? No, I didn't write the code and it's not echo, it's in fact curl. But >> instead of > should do, no? -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines Have a question? Ask away: http://ask.fedoraproject.org