<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ipc on toorun.dev</title><link>https://toorun.dev/tags/ipc/</link><description>Recent content in ipc on toorun.dev</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 25 Jul 2026 10:00:00 +0000</lastBuildDate><atom:link href="https://toorun.dev/tags/ipc/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux IPC in Embedded Systems: Short Practical Guide</title><link>https://toorun.dev/posts/linux-ipc-embedded-linux-practical-guide/</link><pubDate>Sat, 25 Jul 2026 10:00:00 +0000</pubDate><guid>https://toorun.dev/posts/linux-ipc-embedded-linux-practical-guide/</guid><description>Linux IPC in Embedded Systems (Short Practical Guide) IPC (Inter-Process Communication) lets processes exchange data and signals. In embedded Linux, IPC choice affects latency, memory use, complexity, and reliability.
Quick selection Stream logs or simple producer-&amp;gt;consumer: pipe / FIFO Request/response between local services: Unix domain socket Structured async messages with priorities: POSIX message queue High-throughput low-latency data path: shared memory + semaphore/mutex Simple notifications/events: signal or eventfd 1) Pipe/FIFO Best for Simple one-way byte stream Shell-like pipelines or parent-child communication Pros Very simple API Low overhead Cons Byte stream only (no message boundaries) Multi-writer design becomes messy // parent writes, child reads int fd[2]; pipe(fd); if (fork() == 0) { close(fd[1]); char buf[64] = {0}; read(fd[0], buf, sizeof(buf)); printf(&amp;#34;child got: %s\n&amp;#34;, buf); _exit(0); } close(fd[0]); write(fd[1], &amp;#34;hello&amp;#34;, 5); 2) Unix Domain Socket (AF_UNIX) Best for Local client/server daemons Need bidirectional communication and framing Pros Faster than TCP loopback for local IPC Supports stream or datagram modes Can pass file descriptors (SCM_RIGHTS) Cons More setup than pipes Protocol framing is your responsibility // server side (minimal) int s = socket(AF_UNIX, SOCK_STREAM, 0); struct sockaddr_un addr = {.</description></item></channel></rss>