Re: off topic: combined output of concurrent processes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux