<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
      <title>003.05.01.Inter-Process-Communication. Pipes - EmbLogic</title>
      <link>https://www.emblogic.com/forum/categories/003-05-01-inter-process-communication-pipes/feed.rss</link>
      <pubDate>Thu, 13 Aug 26 21:12:04 +0530</pubDate>
         <description>003.05.01.Inter-Process-Communication. Pipes - EmbLogic</description>
   <language>en-CA</language>
   <atom:link href="/forum/discussions/feed.rss" rel="self" type="application/rss+xml" />
		<item>
			<title>003.05.Inter-ProcessCommunication. Pipes</title>
			<link>https://www.emblogic.com/forum/discussion/1647/003-05-inter-processcommunication-pipes</link>
			<pubDate>Sat, 01 Jun 2024 15:29:16 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1647@/forum/discussions</guid>
			<description><![CDATA[<span><span>All queries, discussions, updates and clarifications related to...<br /></span></span><div><span><span>003.05.Inter-ProcessCommunication. Pipes</span></span></div><div><span><span>should be posted here.</span></span></div>]]></description>
		</item>
		<item>
			<title>7. Synchronous Communication</title>
			<link>https://www.emblogic.com/forum/discussion/1654/7-synchronous-communication</link>
			<pubDate>Tue, 04 Jun 2024 09:42:06 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1654@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>7. </strong></span><span><strong>Synchronous Communication</strong></span></span></span></span></h3><div><span><span><span>Implement a mechanism to ensure synchronous communication between the parent and child processes using `waitpid()`.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>6. Closing Unused Pipe Ends</title>
			<link>https://www.emblogic.com/forum/discussion/1653/6-closing-unused-pipe-ends</link>
			<pubDate>Tue, 04 Jun 2024 09:39:52 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1653@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>6. </strong></span><span><strong>Closing Unused Pipe Ends</strong></span></span></span></span></h3><div><span><span><span>Ensure that both the parent and child processes close the unused ends of the pipe to prevent resource leaks.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>11. Bidirectional Communication with Reversal</title>
			<link>https://www.emblogic.com/forum/discussion/1658/11-bidirectional-communication-with-reversal</link>
			<pubDate>Tue, 04 Jun 2024 09:45:43 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1658@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>11</strong></span><span><strong>. </strong></span><span><strong>Bidirectional Communication with Reversal</strong></span></span></span></span></h3><div><span><span><span>Write a program where the parent sends a string to the child, the child reverses the string, and sends it back to the parent. The parent then prints the reversed string.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>4. Bidirectional Communication</title>
			<link>https://www.emblogic.com/forum/discussion/1651/4-bidirectional-communication</link>
			<pubDate>Tue, 04 Jun 2024 09:39:22 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1651@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>4.</strong></span> <span><strong>Bidirectional Communication</strong></span></span></span></span></h3><div><span><span><span>Extend the program to create two pipes: one for parent-to-child communication and another for child-to-parent communication. The parent sends a message to the child, the child modifies the message, and sends it back to the parent.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>5. Error Handling</title>
			<link>https://www.emblogic.com/forum/discussion/1652/5-error-handling</link>
			<pubDate>Tue, 04 Jun 2024 09:39:37 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1652@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>5.</strong></span><strong> <span>Error Handling</span></strong></span></span></span></h3><div><span><span><span>Add error handling to the program to handle scenarios where the `pipe()` or `fork()` system calls fail.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>8. Reading and Writing Strings</title>
			<link>https://www.emblogic.com/forum/discussion/1655/8-reading-and-writing-strings</link>
			<pubDate>Tue, 04 Jun 2024 09:42:21 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1655@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>8. </strong></span><span><strong>Reading and Writing Strings</strong></span></span></span></span></h3><div><span><span><span>Write a program where the parent process reads a string from the user, writes it to the pipe, and the child process reads the string from the pipe and prints it.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>3. Parent to Child Communication</title>
			<link>https://www.emblogic.com/forum/discussion/1650/3-parent-to-child-communication</link>
			<pubDate>Tue, 04 Jun 2024 09:33:13 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1650@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>3.</strong></span> <span><strong>Parent to Child Communication</strong></span></span></span></span></h3><div><span><span><span>Write a program where the parent process writes a message to the pipe, and the child process reads the message from the pipe and prints it.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>2. Forking a Process</title>
			<link>https://www.emblogic.com/forum/discussion/1649/2-forking-a-process</link>
			<pubDate>Tue, 04 Jun 2024 09:32:59 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1649@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>2. </strong></span><span><strong>Forking a Process</strong></span></span></span></span></h3><div><span><span><span>Modify the program to fork a new process using the `fork()` system call. Print the process IDs of the parent and child processes.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>1. Creating a Pipe</title>
			<link>https://www.emblogic.com/forum/discussion/1648/1-creating-a-pipe</link>
			<pubDate>Tue, 04 Jun 2024 09:32:42 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1648@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>1.</strong></span> <span><strong>Creating a Pipe</strong></span></span></span></span></h3><div><span><span><span>Write a C program to create a pipe and verify its creation by checking the return value of the `pipe()` system call.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>10. Multiple Writes and Reads</title>
			<link>https://www.emblogic.com/forum/discussion/1657/10-multiple-writes-and-reads</link>
			<pubDate>Tue, 04 Jun 2024 09:45:31 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1657@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>10</strong></span><span><strong>. </strong></span><span><strong>Multiple Writes and Reads</strong></span></span></span></span></h3><div><span><span><span>Implement a program where the parent process writes multiple messages to the pipe and the child process reads and prints each message.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>9. Handling Large Messages</title>
			<link>https://www.emblogic.com/forum/discussion/1656/9-handling-large-messages</link>
			<pubDate>Tue, 04 Jun 2024 09:42:34 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1656@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>9. </strong></span><span><strong>Handling Large Messages</strong></span></span></span></span></h3><div><span><span><span>Modify the program to handle messages larger than the pipe buffer size. Use a loop to ensure the entire message is sent and received correctly.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>Inter-Process-Communication-Pipes. Issues, Issues, queries, discussion or suggestions</title>
			<link>https://www.emblogic.com/forum/discussion/1704/inter-process-communication-pipes-issues-issues-queries-discussion-or-suggestions</link>
			<pubDate>Thu, 13 Jun 2024 12:03:53 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1704@/forum/discussions</guid>
			<description><![CDATA[<div><span style="font-family: Georgia; color: #333333; font-size: large;">All queries, discussions, updates and clarifications related to...</span></div><div><span style="font-family: Georgia; color: #333333; font-size: large;"><b>003.05.Inter-Process-Communication-Pipes</b></span></div><div><span style="font-family: Georgia; color: #333333; font-size: large;">should be posted here.</span></div>]]></description>
		</item>
		<item>
			<title>20. Benchmarking Pipe Performance</title>
			<link>https://www.emblogic.com/forum/discussion/1667/20-benchmarking-pipe-performance</link>
			<pubDate>Tue, 04 Jun 2024 10:16:43 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1667@/forum/discussions</guid>
			<description><![CDATA[<p style="text-align: justify;"><span style="color: #2f4f4f;"><span style="font-family: Caladea, serif;"><span style="font-size: large;"><span><span style="color: #bf0041;"><b>20</b></span><span style="color: #bf0041;"><b>. </b></span><span style="color: #134f5c;"><b>Benchmarking Pipe Performance</b></span></span></span></span></span></p><p style="text-align: justify;"><span style="color: #2f4f4f;"><span style="font-family: Caladea, serif;"><span style="font-size: large;">Write a program to measure the performance of pipe-based IPC by sending a large number of messages between the parent and child processes and timing the operation.</span></span></span></p>]]></description>
		</item>
		<item>
			<title>19. Parent and Child Coordination</title>
			<link>https://www.emblogic.com/forum/discussion/1666/19-parent-and-child-coordination</link>
			<pubDate>Tue, 04 Jun 2024 10:16:21 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1666@/forum/discussions</guid>
			<description><![CDATA[<p style="text-align: justify;"><span style="color: #2f4f4f;"><span style="font-family: Caladea, serif;"><span style="font-size: large;"><span><span style="color: #bf0041;"><b>1</b></span><span style="color: #bf0041;"><b>9</b></span><span style="color: #bf0041;"><b>. </b></span><span style="color: #134f5c;"><b>Parent and Child Coordination</b></span></span></span></span></span></p><p style="text-align: justify;"><span style="color: #2f4f4f;"><span style="font-family: Caladea, serif;"><span style="font-size: large;">Implement a mechanism for the parent to signal the child to perform a specific task using the pipe, and the child process performs the task and acknowledges it.</span></span></span></p>]]></description>
		</item>
		<item>
			<title>18. Inter-process Communication in a Daemon</title>
			<link>https://www.emblogic.com/forum/discussion/1665/18-inter-process-communication-in-a-daemon</link>
			<pubDate>Tue, 04 Jun 2024 09:52:12 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1665@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>18</strong></span><span><strong>. </strong></span><span><strong>Inter-process Communication in a Daemon</strong></span></span></span></span></h3><div><span><span><span>Modify the program to run the child process as a daemon process that communicates with the parent process through a pipe.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>17. Pipes and File Redirection</title>
			<link>https://www.emblogic.com/forum/discussion/1664/17-pipes-and-file-redirection</link>
			<pubDate>Tue, 04 Jun 2024 09:51:59 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1664@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>17</strong></span><span><strong>. </strong></span><span><strong>Pipes and File Redirection</strong></span></span></span></span></h3><div><span><span><span>Redirect the output of one process to a file using pipes and the `dup2()` system call.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>16. Pipes with Multiple Children</title>
			<link>https://www.emblogic.com/forum/discussion/1663/16-pipes-with-multiple-children</link>
			<pubDate>Tue, 04 Jun 2024 09:51:46 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1663@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>16</strong></span><span><strong>. </strong></span><span><strong>Pipes with Multiple Children</strong></span></span></span></span></h3><div><span><span><span>Write a program where the parent process creates multiple child processes, each reading from the same pipe. Ensure proper synchronization and resource management.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>15. Handling Signals</title>
			<link>https://www.emblogic.com/forum/discussion/1662/15-handling-signals</link>
			<pubDate>Tue, 04 Jun 2024 09:48:57 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1662@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>15</strong></span><span><strong>. </strong></span><span><strong>Handling Signals</strong></span></span></span></span></h3><div><span><span><span>Add signal handling to your program to gracefully handle signals like `SIGINT` and `SIGTERM` while using pipes.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>14. Sending Structs Through Pipes</title>
			<link>https://www.emblogic.com/forum/discussion/1661/14-sending-structs-through-pipes</link>
			<pubDate>Tue, 04 Jun 2024 09:48:43 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1661@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>14</strong></span><span><strong>. </strong></span><span><strong>Sending Structs Through Pipes</strong></span></span></span></span></h3><div><span><span><span>Write a program where the parent process sends a struct containing multiple data types to the child process through the pipe. The child process reads and prints the struct data.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>13. Non-blocking Pipes</title>
			<link>https://www.emblogic.com/forum/discussion/1660/13-non-blocking-pipes</link>
			<pubDate>Tue, 04 Jun 2024 09:48:30 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1660@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>13</strong></span><span><strong>. </strong></span><span><strong>Non-blocking Pipes</strong></span></span></span></span></h3><div><span><span><span>Configure the pipe for non-blocking I/O using the `fcntl()` system call and demonstrate how to handle EAGAIN errors.</span></span></span></div>]]></description>
		</item>
		<item>
			<title>12. Using `poll()` for Multiplexing</title>
			<link>https://www.emblogic.com/forum/discussion/1659/12-using-poll-for-multiplexing</link>
			<pubDate>Tue, 04 Jun 2024 09:46:01 +0530</pubDate>
			<dc:creator>pravjot</dc:creator>
			<guid isPermaLink="false">1659@/forum/discussions</guid>
			<description><![CDATA[<h3><span><span><span><span><strong>12</strong></span><span><strong>. </strong></span><span><strong>Using `poll()` for Multiplexing</strong></span></span></span></span></h3><div><span><span><span>Use the `poll()` system call to monitor the pipe for readability before attempting to read from it, ensuring non-blocking reads.</span></span></span></div>]]></description>
		</item>
   </channel>
</rss>