Liste des Groupes | Revenir à col misc |
On 2024-12-18, Rich <rich@example.invalid> wrote:186282@ud0s4.net <186283@ud0s4.net> wrote:On 12/17/24 8:23 PM, Lawrence D'Oliveiro wrote:>On Tue, 17 Dec 2024 13:34:30 +0000, Geoff Clare wrote:
With a pipe or FIFO, you just use simple read and write operations
and the system handles all the messy stuff for you. If the pipe
reaches capacity, write blocks until there is room to write some
more; if the pipe becomes empty, read blocks until there is more
data available; when read returns EOF that's the end of the data.
Yup. Furthermore:
* When the last writer closes its end, any remaining read attempts
get EOF.
* When the last reader closes its end, any remaining write attempts
get “broken pipe”.
But you're still limited to the amount of RAM the system can
access.
Not with a pipe or FIFO, which is what is being discussed above.
>
The amount of data you can transfer over a pipe is not in any way
limited by system memory size or any other system imposed limits.
>These days that's probably a LOT - but might NOT be,>
esp for 'embedded' type boards like the older PIs,
BBBs and such. Never assume the user has essentially
infinite RAM.
The system will not have infinite RAM. You can transfer infinite data
over a pipe (although it will take a while to reach infinity).
A pipe is _NOT_ limited to system RAM!
Using a named pipe on a Raspberry Pi model 1 with a _half_ GB of
total RAM, I would routinely transfer _several_ GB in a single
stream from an mplayer process to a netcat process. The only
reason that's not currently happening every night these days is
the amplified TV antenna lost too much gain due to age, attic
heat, etc.
Les messages affichés proviennent d'usenet.