[HN Gopher] Beej's Guide to Unix IPC
       ___________________________________________________________________
        
       Beej's Guide to Unix IPC
        
       Author : qntty
       Score  : 59 points
       Date   : 2022-01-06 20:22 UTC (2 hours ago)
        
 (HTM) web link (beej.us)
 (TXT) w3m dump (beej.us)
        
       | DataDaoDe wrote:
       | Beej's guides are amazing with a memorable and entertaining
       | writing style. I remember reading his network guide almost two
       | decades ago when I was a kid, had just heard of this thing called
       | a socket, but the only connotation I had for one at the time was
       | a wall socket. His guide helped me understand networking but more
       | importantly it made it a fun experience for a programmer just
       | starting out.
        
         | systemvoltage wrote:
         | I have to point this one out from his guide to C:
         | https://beej.us/guide/bgc/html/split/hello-world.html
         | 
         | > Before we go on, why would I even begin to bother pointing
         | out that a pound sign is called an octothorpe? The answer is
         | simple: I think the word octothorpe is so excellently funny, I
         | have to gratuitously spread its name around whenever I get the
         | opportunity. Octothorpe. Octothorpe, octothorpe, octothorpe.
         | 
         | I can't find it right now but somewhere in the guide in a
         | different chapter, he randomly inserts "Octothorpe"... good
         | comedy. I think this kind of writing is exceedingly rare and
         | immesely enjoyable.
        
       | synergy20 wrote:
       | The IPC is in SystemV flavor but I think these days we normally
       | should adopt Posix IPC instead especially for Linux/BSD, am I
       | missing something?                   "On Linux and FreeBSD there
       | is big advantage of posix queues, as handler given by mq_open are
       | basically file descriptor which can be
       | polled/epolled/selected/kqueued"         "all POSIX IPC is
       | thread-safe, while most SysV IPC is NOT"
        
         | beej71 wrote:
         | It hasn't been appreciably touched in decades. It could
         | definitely use an update. And I need to port it to the new
         | pandoc toolchain.
        
           | synergy20 wrote:
           | Sounds great. It's hard to find nice tutorials for posix-ipc
           | on the internet.
        
           | pure_simplicity wrote:
           | If you use pandoc, have you considered epub as a target
           | format? I am getting good results going from latex to epub
           | using pandoc. Not sure what your sources and toolchain are
           | like, though.
           | 
           | Thanks for the great guides. :)
        
       | colbyhub wrote:
       | I freaking love his guides, I'm currently reading through his C
       | guide: https://beej.us/guide/bgc/
       | 
       | It's very entertaining to read though which holds my attention
       | well, and is well suited to people with existing programming
       | experience. I've tried to read K&R but I keep coming back to
       | Beej's.
        
       | nathias wrote:
       | Beej really has the best guides.
        
       | Const-me wrote:
       | fork() is rarely ideal, unless followed by exec() to launch
       | another processes. That copy-on-write thing often wastes too much
       | physical memory. I think threads are usually better, the shared
       | memory allows to marshal large volumes of data without making
       | copies.
       | 
       | I like poll() much better than signals. Signals are too limiting,
       | and too arcane. It's much easier to use poll() and dispatch
       | things manually based on the signaled handles, at least there's a
       | guarantee your code won't be interrupted by another event.
       | 
       | Pretty much all modern kernel things are compatible with poll.
       | There's eventfd() which acts as an event or semaphore, message
       | queues (but not the ones from the article, better ones, created
       | with mq_open not msgget), Unix domain sockets for cross-process
       | messaging. There's more, poll() can track termination of
       | processes (see pidfd_open), page flip events in a GPU with DRM,
       | consumed or available video/audio samples with V4L2 or ALSA.
        
       ___________________________________________________________________
       (page generated 2022-01-06 23:00 UTC)