Sujet : Re: The joy of pipes
De : 186283 (at) *nospam* ud0s4.net (186282@ud0s4.net)
Groupes : comp.os.linux.miscDate : 17. Nov 2024, 05:59:41
Autres entêtes
Organisation : wokiesux
Message-ID : <JJOdnfSeXoej5aT6nZ2dnZfqnPSdnZ2d@earthlink.com>
References : 1 2 3 4 5 6 7 8 9 10
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
On 11/16/24 5:31 AM, Richard Kettlewell wrote:
Louis Krupp <lkrupp@invalid.pssw.com.invalid> writes:
On 11/15/2024 12:49 AM, 186282@ud0s4.net wrote:
>
On 11/14/24 9:05 PM, Lawrence D'Oliveiro wrote:
>
On Thu, 14 Nov 2024 16:09:07 -0800, John Ames wrote:
>
(I think it was a topic shift to applications of *nix pipes...?)
>
Oh shelly boy, the pipes, the pipes are calling ...
>
Pipes are good.
>
But, really, they're just temp files the parent
process can access.
>
Pipes *could* be implemented with temporary disk files, at least to an
extent, but as far as I can tell, they're not.
“Temporary files the parent can access” is not a good model for a couple
of reasons:
* The semantics are different. Bytes read from a regular file are still
there to be read again if you rewind the file; bytes read from a pipe
are gone. Empty/full files behave differently to empty/full pipes.
* Temporary regular files can already be accessed by other processes by
name, by file descriptor inheritance, or file descriptor passing.
Didn't say temp disk files were necessarily SUPERIOR, just
that they CAN do most of the stuff pipes are used for and
in an easier user/code-friendly fashion. SIZE is almost
unlimited too.
Anyway, I'd made some TCP/UDP servers but the parent needed
to know the status of the children in a little more detail
than just a tiny return code - might want to terminate the
child if it'd been idle for awhile, might want to know how
much bandwidth was being used, might want to pick a good
time to do some maint routines, might want to know WHO the
connections were from. Pipes were the (relatively) easy
'C'-approved method and did the job very well.
So, for most, use pipes. Python and FPC also do pipes.
They're INTENDED for inter-process communications after
all so generally GO that way.
The Bi-Di server was the most fun ... think a "chat" app
but with the potential for more than just text - closer
to 'remote terminal'/SSH. ALMOST slipped into re-creating
an FTP app until I realized where it was going. Too much
enthusiasm. Commented-out the remote root system call
function :-)
Amazing how LITTLE code is required for such things.
Even the pre-threaded version (max cap) wasn't huge
at all (albeit the hardest to 'hold in yer head' as
to how it worked). Base examples in several langs easily
found on the net - just build-on as necessary and
then party on.