<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EmbLogic &#187; Project 03: Client Server Communication using Linux and IPC</title>
	<atom:link href="https://www.emblogic.com/blog/category/client-server-communication-using-linux-and-ipc/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.emblogic.com/blog</link>
	<description>Embedded System and ARM Training</description>
	<lastBuildDate>Tue, 03 Mar 2020 13:00:06 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>Socket programming based Home Automation</title>
		<link>https://www.emblogic.com/blog/12/home-automation-based-socket-programming/</link>
		<comments>https://www.emblogic.com/blog/12/home-automation-based-socket-programming/#comments</comments>
		<pubDate>Fri, 09 Dec 2016 12:04:21 +0000</pubDate>
		<dc:creator><![CDATA[Raghu Nath]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>
		<category><![CDATA[Project 6: Client Server using Inter Process Communication Mechanism]]></category>
		<category><![CDATA[Project 9: Embedded Linux on ARM]]></category>
		<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[server-client]]></category>
		<category><![CDATA[sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13709</guid>
		<description><![CDATA[The main aim of this project is to implement Socket programming using Embedded linux based boards using beagle bone as server and pc as a client. The entire electrical system like home appliances are interfaced to Server (Beagle bone black) &#8230; <a href="https://www.emblogic.com/blog/12/home-automation-based-socket-programming/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The main aim of this project is to implement Socket programming using Embedded linux based boards using beagle bone as server and pc as a client. The entire electrical system like home appliances are interfaced to Server (Beagle bone black) using relay electronics system.There will be authentication system for accessing the server like user id and password which will be provided by  user through client.The enhancement of authentication system will be based on shell scripts.The user can control any appliance at any time from linux terminal.The user will run application based code which is interfaced to the Client program by providing basic authentication. An acknowledgement is also provided to user to monitor the status of the Appliance by server.The protocol used here is TCP (Transmission Control protocol)Client Server model, The Client will send the request to server.The Server process takes a request from the client. After getting a request from the client, this process will perform the required processing, gather the requested information, and send it to the requester client. The user will provide some input data by command line arguments to application Client.The beagle bone  Server application will be automated  after initial boot power-on with the help of bashRC Scripting.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/home-automation-based-socket-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>client-server program using AF_UNIX</title>
		<link>https://www.emblogic.com/blog/04/client-server-program-using-af_unix/</link>
		<comments>https://www.emblogic.com/blog/04/client-server-program-using-af_unix/#comments</comments>
		<pubDate>Sun, 03 Apr 2016 15:37:46 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13476</guid>
		<description><![CDATA[RCS file: header.h,v Working file: header.h head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: This is the base header file for the Project &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 locked &#8230; <a href="https://www.emblogic.com/blog/04/client-server-program-using-af_unix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the base header file for the Project<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2016/04/03 15:35:50; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: req_client.c,v<br />
Working file: req_client.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
This is the requesting client &#8230;sending request to the server.<br />
Has socket() to creat the socket.<br />
Has the connect() to connect to the server.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/06/18 09:04:22; author: root; state: Exp; lines: +7 -1<br />
client has entered some data &#8230;into the buffer&#8230;and send that buffer through the socket file discriptor.<br />
write()is used to wrote data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/06/18 07:20:19; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: srvr.c,v<br />
Working file: srvr.c<br />
head: 1.4<br />
branch:<br />
locks: strict<br />
root: 1.4<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 4; selected revisions: 4<br />
description:<br />
this is my server program for socket programming.<br />
this includes socket()to create the socket and returns file discriptor.<br />
then there is bind call to name the socket created.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4 locked by: root;<br />
date: 2016/01/29 08:41:59; author: root; state: Exp; lines: +36 -25<br />
Used remove instead of unlink<br />
used strncpy insted of strcpy to maintain the portability.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/06/18 09:05:59; author: root; state: Exp; lines: +16 -2<br />
the data accepted by the accept()call .<br />
read and print the data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/06/18 06:37:40; author: root; state: Exp; lines: +27 -7<br />
Created listen() to listen the accept and given backlog value as 10.that is listen queue size<br />
created accept() to accept the request of the client<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/06/18 05:55:53; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/client-server-program-using-af_unix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Client server program using Thread,Pipes and signals</title>
		<link>https://www.emblogic.com/blog/04/multiple-client-server-program-using-threadpipes-and-signals/</link>
		<comments>https://www.emblogic.com/blog/04/multiple-client-server-program-using-threadpipes-and-signals/#comments</comments>
		<pubDate>Sun, 03 Apr 2016 15:33:30 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13474</guid>
		<description><![CDATA[RCS file: ./header.h,v Working file: ./header.h head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: This is the header file &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 locked by: root; date: 2015/08/11 &#8230; <a href="https://www.emblogic.com/blog/04/multiple-client-server-program-using-threadpipes-and-signals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the header file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 18:20:29; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: server.c,v<br />
Working file: server.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
This is the server<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/01 09:01:10; author: root; state: Exp; lines: +12 -4<br />
Included comments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 18:20:38; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/multiple-client-server-program-using-threadpipes-and-signals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Client-server Program using threads and Message Queue</title>
		<link>https://www.emblogic.com/blog/03/multiple-client-server-program-using-threads-and-message-queue/</link>
		<comments>https://www.emblogic.com/blog/03/multiple-client-server-program-using-threads-and-message-queue/#comments</comments>
		<pubDate>Wed, 30 Mar 2016 17:30:30 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13460</guid>
		<description><![CDATA[RCS file: ./header.h,v Working file: ./header.h head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: This is the Base header file. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 locked by: root; date: &#8230; <a href="https://www.emblogic.com/blog/03/multiple-client-server-program-using-threads-and-message-queue/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the Base header file.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2016/03/30 17:27:32; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_client1.c,v<br />
Working file: ./req_client1.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is req_client1<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 18:07:35; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_client2.c,v<br />
Working file: ./req_client2.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
Req_client2<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 18:12:14; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_client3.c,v<br />
Working file: ./req_client3.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
req_client3<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 18:07:49; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./request.h,v<br />
Working file: ./request.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This header contains requesting structure.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2016/03/30 17:29:41; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./srvr.c,v<br />
Working file: ./srvr.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
srvr<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/01 08:53:00; author: root; state: Exp; lines: +7 -4<br />
included comments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 18:07:54; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multiple-client-server-program-using-threads-and-message-queue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple client server program using Shared Memory</title>
		<link>https://www.emblogic.com/blog/03/multiple-client-server-program-using-shared-memory/</link>
		<comments>https://www.emblogic.com/blog/03/multiple-client-server-program-using-shared-memory/#comments</comments>
		<pubDate>Wed, 30 Mar 2016 17:19:11 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13453</guid>
		<description><![CDATA[RCS file: ./header.h,v Working file: ./header.h head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: This is Base Header file for Multiple client server program using shared memory. &#8230; <a href="https://www.emblogic.com/blog/03/multiple-client-server-program-using-shared-memory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is Base Header file for Multiple client server program using shared memory.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2016/03/30 17:16:27; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_add.c,v<br />
Working file: ./req_add.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
req_add<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/20 07:41:00; author: root; state: Exp; lines: +7 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:57:03; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_sub.c,v<br />
Working file: ./req_sub.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
req_sub<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:57:08; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_mul.c,v<br />
Working file: ./req_mul.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
req_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:57:13; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./server.c,v<br />
Working file: ./server.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
server<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/01 08:16:17; author: root; state: Exp; lines: +8 -2<br />
Included comment.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:57:30; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_add.c,v<br />
Working file: ./proc_add.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
proc_ad<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/01 08:16:00; author: root; state: Exp; lines: +4 -0<br />
Included comment<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:57:17; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_sub.c,v<br />
Working file: ./proc_sub.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
proc_sub<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:57:21; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_mul.c,v<br />
Working file: ./proc_mul.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
proc_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:57:26; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multiple-client-server-program-using-shared-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Client-server Program using Message Queue?</title>
		<link>https://www.emblogic.com/blog/03/multiple-client-server-program-using-message-queue/</link>
		<comments>https://www.emblogic.com/blog/03/multiple-client-server-program-using-message-queue/#comments</comments>
		<pubDate>Mon, 28 Mar 2016 16:58:12 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13443</guid>
		<description><![CDATA[RCS file: ./header.h,v Working file: ./header.h head: 1.2 branch: locks: strict root: 1.2 access list: symbolic names: keyword substitution: kv total revisions: 2; selected revisions: 2 description: This is Base Header file for this project. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.2 locked by: &#8230; <a href="https://www.emblogic.com/blog/03/multiple-client-server-program-using-message-queue/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
This is Base Header file for this project.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2016/03/28 16:51:10; author: root; state: Exp; lines: +3 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/03/28 16:50:39; author: root; state: Exp;<br />
Initial revision<br />
=========================================================================RCS file: ./req_add.c,v<br />
Working file: ./req_add.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is req_add<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:52:09; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_sub.c,v<br />
Working file: ./req_sub.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
req-sub<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:52:16; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>====RCS file: ./req_mul.c,v<br />
Working file: ./req_mul.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
rwq_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:52:21; author: root; state: Exp;<br />
Initial revision<br />
==========================================================RCS file: ./server.c,v<br />
Working file: ./server.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
server<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/01 07:41:36; author: root; state: Exp; lines: +3 -3<br />
Included comments.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:52:57; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_add.c,v<br />
Working file: ./proc_add.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
proc_add<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:52:31; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_sub.c,v<br />
Working file: ./proc_sub.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
proc_sub<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:52:45; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_mul.c,v<br />
Working file: ./proc_mul.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
proc_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:52:51; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>===================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multiple-client-server-program-using-message-queue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Client-server Program using FIFO and Semaphore</title>
		<link>https://www.emblogic.com/blog/03/multiple-client-server-program-using-fifo-and-semaphore/</link>
		<comments>https://www.emblogic.com/blog/03/multiple-client-server-program-using-fifo-and-semaphore/#comments</comments>
		<pubDate>Sun, 27 Mar 2016 14:37:00 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13437</guid>
		<description><![CDATA[RCS file: ./header.h,v Working file: ./header.h head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: This is the base header file for this multiple client server program. where &#8230; <a href="https://www.emblogic.com/blog/03/multiple-client-server-program-using-fifo-and-semaphore/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the base header file for this multiple client server program.<br />
where There are three client named req_add ,req_sub,req_mul and server and<br />
three processing client proc_add,proc_sub,proc_mul.<br />
in this req_client send request to server then server passes to processing client for<br />
further processing.<br />
to provide the synchorinazation symphore are used.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2016/03/27 14:32:26; author: root; state: Exp;<br />
Initial revision<br />
===============================RCS file: ./req_add.c,v<br />
Working file: ./req_add.c<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
root: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3; selected revisions: 3<br />
description:<br />
This is the req_add<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3 locked by: root;<br />
date: 2015/09/01 07:18:22; author: root; state: Exp; lines: +29 -2<br />
included comments.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/09/01 06:29:42; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:21:48; author: root; state: Exp;<br />
Initial revision<br />
===========================================================================RCS file: ./req_sub.c,v<br />
Working file: ./req_sub.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the req_sub<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:21:55; author: root; state: Exp;<br />
Initial revision<br />
====================================================================RCS file: ./req_mul.c,v<br />
Working file: ./req_mul.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the req_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:22:02; author: root; state: Exp;<br />
Initial revision<br />
=====================================================================RCS file: ./server.c,v<br />
Working file: ./server.c<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
root: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3; selected revisions: 3<br />
description:<br />
This is the server<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3 locked by: root;<br />
date: 2015/10/23 07:20:14; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/09/01 07:18:37; author: root; state: Exp; lines: +25 -5<br />
included comments.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:22:42; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================<br />
========RCS file: ./proc_add.c,v<br />
Working file: ./proc_add.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2; selected revisions: 2<br />
description:<br />
This is the proc_add<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2 locked by: root;<br />
date: 2015/09/01 07:18:31; author: root; state: Exp; lines: +2 -0<br />
included comments.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/11 17:22:11; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_sub.c,v<br />
Working file: ./proc_sub.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the proc_sub<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:22:24; author: root; state: Exp;<br />
Initial revision<br />
============================================================================RCS file: ./proc_mul.c,v<br />
Working file: ./proc_mul.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1; selected revisions: 1<br />
description:<br />
This is the proc_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1 locked by: root;<br />
date: 2015/08/11 17:22:32; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================<br />
=</p>
<p>=========<br />
==<br />
==============================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multiple-client-server-program-using-fifo-and-semaphore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-Tasking Operating System</title>
		<link>https://www.emblogic.com/blog/03/multi-tasking-operating-system/</link>
		<comments>https://www.emblogic.com/blog/03/multi-tasking-operating-system/#comments</comments>
		<pubDate>Sat, 26 Mar 2016 16:23:17 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13434</guid>
		<description><![CDATA[Multitasking OS is the one that can simultaneously interleave execution of more then one process. They are of two types : &#62;&#62;cooperative multitasking : in this process don&#8217;t stop running until it voluntary decide to do so . This is &#8230; <a href="https://www.emblogic.com/blog/03/multi-tasking-operating-system/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong><span style="color: #000000"><em><span style="text-decoration: underline"> Multitasking OS</span></em> is the one that can simultaneously interleave execution of more then one process.</span></strong></p>
<p><b>They are of two types :</b><br />
<b>&gt;&gt;<em><span style="text-decoration: underline">cooperative multitasking :</span></em> in this process don&#8217;t stop running until it voluntary decide to do so . This is known as <em>yielding</em></b><b><em>.</em></b></p>
<p><b>&gt;&gt;<em><span style="text-decoration: underline">Preemptive multitasking :</span></em> in this scheduler decides when a process to cease running and a new process to begin running. This involuntary suspending of running program is called <em>preemptive</em>. This maintains that no process monopolize the resource.</b></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multi-tasking-operating-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Client &#8211; server Program using PIPE and Signal.</title>
		<link>https://www.emblogic.com/blog/03/multiple-client-server-program-using-pipe-and-signal/</link>
		<comments>https://www.emblogic.com/blog/03/multiple-client-server-program-using-pipe-and-signal/#comments</comments>
		<pubDate>Sat, 26 Mar 2016 15:50:56 +0000</pubDate>
		<dc:creator><![CDATA[Jyoti Singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13431</guid>
		<description><![CDATA[PIPE to mean connecting a data flow from one process to another.PIPE is passed (a pointer to) an array of two integer file descriptors.It fills the array with two new file descriptors and returns a zero. On failure, it returns &#8230; <a href="https://www.emblogic.com/blog/03/multiple-client-server-program-using-pipe-and-signal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p align="left"><span style="font-family: 'Liberation Serif', serif"><b>PIPE to mean connecting a data flow from one process to another.</b></span><span style="font-family: 'Liberation Serif', serif"><b>PIPE is passed (a pointer to) an array of two integer file descriptors.</b></span><span style="font-family: 'Liberation Serif', serif"><b>It fills the array with two new file descriptors and returns a zero. On failure, it returns -1.</b></span><b>The two file descriptors returned are connected in a special way. Any data written to file_descriptor[1] can be read back from file_descriptor[0]. The data is processed in a first in, first out basis, usually abbreviated to FIFO.</b></p>
<p align="left"><b>Fd[0] = read</b></p>
<p align="left"><span style="font-family: 'Liberation Serif', serif"><b>fd[1] = write</b></span></p>
<p>CODE:</p>
<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
root: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3; selected revisions: 3<br />
description:<br />
This is the base header file for the project 3_client server ipc technique using pipe and signals<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3 locked by: root;<br />
date: 2015/08/04 06:05:54; author: root; state: Exp; lines: +1 -0<br />
Included color.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:37:10; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_add.c,v<br />
Working file: ./req_add.c<br />
head: 1.10<br />
branch:<br />
locks: strict<br />
root: 1.10<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 10; selected revisions: 10<br />
description:<br />
This is Requesting client named adder<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10 locked by: root;<br />
date: 2015/08/31 18:06:46; author: root; state: Exp; lines: +7 -0<br />
Included comment<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2015/08/04 07:09:47; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2015/08/04 07:07:31; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2015/08/04 06:59:09; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/08/04 06:56:03; author: root; state: Exp; lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/08/04 06:06:04; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/08/03 18:38:24; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/03 18:14:47; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:12:15; author: root; state: Exp; lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./req_sub.c,v<br />
Working file: ./req_sub.c<br />
head: 1.8<br />
branch:<br />
locks: strict<br />
root: 1.8<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 8; selected revisions: 8<br />
description:<br />
This is the subtractor req_client<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8 locked by: root;<br />
date: 2015/08/04 07:09:48; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2015/08/04 07:02:15; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/08/04 06:59:10; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/08/04 06:56:05; author: root; state: Exp; lines: +5 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/08/03 18:38:26; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/03 18:14:48; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:12:16; author: root; state: Exp; lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
============================================================================RCS file: ./req_mul.c,v<br />
Working file: ./req_mul.c<br />
head: 1.8<br />
branch:<br />
locks: strict<br />
root: 1.8<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 8; selected revisions: 8<br />
description:<br />
This is the mul req_client<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8 locked by: root;<br />
date: 2015/08/04 07:09:49; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2015/08/04 07:07:32; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/08/04 06:59:11; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/08/04 06:56:06; author: root; state: Exp; lines: +4 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/08/03 18:38:27; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/03 18:14:49; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:12:17; author: root; state: Exp; lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================<br />
=<br />
RCS file: ./server.c,v<br />
Working file: ./server.c<br />
head: 1.4<br />
branch:<br />
locks: strict<br />
root: 1.4<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 4; selected revisions: 4<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4 locked by: root;<br />
date: 2015/08/31 18:06:59; author: root; state: Exp; lines: +7 -0<br />
Included comment<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/04 07:09:52; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:37:11; author: root; state: Exp; lines: +6 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 18:34:43; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_add.c,v<br />
Working file: ./proc_add.c<br />
head: 1.8<br />
branch:<br />
locks: strict<br />
root: 1.8<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 8; selected revisions: 8<br />
description:<br />
This is proc_client for adder<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8 locked by: root;<br />
date: 2015/08/31 18:06:54; author: root; state: Exp; lines: +3 -0<br />
Included comment<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2015/08/04 07:09:49; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/08/04 07:07:33; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/08/04 06:56:06; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/08/03 18:18:14; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/03 18:14:49; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:12:18; author: root; state: Exp; lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_sub.c,v<br />
Working file: ./proc_sub.c<br />
head: 1.7<br />
branch:<br />
locks: strict<br />
root: 1.7<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 7; selected revisions: 7<br />
description:<br />
This is the proc_client for subtractor<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7 locked by: root;<br />
date: 2015/08/04 07:09:50; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/08/04 07:07:33; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/08/04 06:56:07; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/08/03 18:18:15; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/03 18:14:50; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:12:18; author: root; state: Exp; lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: ./proc_mul.c,v<br />
Working file: ./proc_mul.c<br />
head: 1.7<br />
branch:<br />
locks: strict<br />
root: 1.7<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 7; selected revisions: 7<br />
description:<br />
This is the processing client for the multiplier<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7 locked by: root;<br />
date: 2015/08/04 07:09:51; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/08/04 07:07:33; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/08/04 06:56:08; author: root; state: Exp; lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/08/03 18:18:16; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/08/03 18:14:50; author: root; state: Exp; lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/08/03 18:12:19; author: root; state: Exp; lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/08/03 17:53:18; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multiple-client-server-program-using-pipe-and-signal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single Client  Server And Single Thread Communication Using FIFO With Use The Shell Script</title>
		<link>https://www.emblogic.com/blog/02/single-client-server-and-single-thread-communication-with-using-the-shell-script/</link>
		<comments>https://www.emblogic.com/blog/02/single-client-server-and-single-thread-communication-with-using-the-shell-script/#comments</comments>
		<pubDate>Thu, 25 Feb 2016 22:09:59 +0000</pubDate>
		<dc:creator><![CDATA[Gurbhej Gill]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[Shell Scripts]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13307</guid>
		<description><![CDATA[RCS file: header.h,v Working file: header.h head: 1.15 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 15;    selected revisions: 15 description: In file all include header files related this project. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.15 date: 2016/02/25 06:18:43;  &#8230; <a href="https://www.emblogic.com/blog/02/single-client-server-and-single-thread-communication-with-using-the-shell-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.15<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 15;    selected revisions: 15<br />
description:<br />
In file all include header files related this project.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2016/02/25 06:18:43;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2016/02/25 06:15:12;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/02/24 09:13:23;  author: root;  state: Exp;  lines: +1 -0<br />
In file include a semaphore.h header files .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/02/24 08:44:38;  author: root;  state: Exp;  lines: +0 -1<br />
In file remove a prototype second thread hendler function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/02/23 16:38:46;  author: root;  state: Exp;  lines: +1 -0<br />
In file decalre a prototypes another handler function this handler in server in handler function return type void.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/02/23 11:41:03;  author: root;  state: Exp;  lines: +2 -1<br />
In file declare a prototypes of signal handler is return type is chany void not a void .<br />
void *.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/02/23 11:39:06;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/23 10:30:18;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/23 10:28:18;  author: root;  state: Exp;  lines: +1 -0<br />
In file now include a signal.h header file before declare a prototype signal handler functions.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/23 10:18:53;  author: root;  state: Exp;  lines: +1 -0<br />
In file include a new a header file signal.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/21 08:40:55;  author: root;  state: Exp;  lines: +1 -1<br />
In file check how working<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/21 08:08:10;  author: root;  state: Exp;  lines: +1 -1<br />
In file decalre a prototypes in will agrument pass in thread is type void *<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/21 07:49:17;  author: root;  state: Exp;  lines: +2 -0<br />
In file decalre a prototypes of processing client thread .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/20 05:54:00;  author: root;  state: Exp;  lines: +3 -0<br />
In file include a header files.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/20 05:33:07;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: request.h,v<br />
Working file: request.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;     selected revisions: 2<br />
description:<br />
In file assgin a data in structure then open a fifo in write only mode then write the data .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/23 10:19:14;  author: root;  state: Exp;  lines: +1 -0<br />
In file in structure member decalre a pid variable in int type.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/20 05:34:10;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: processing_client.c,v<br />
Working file: processing_client.c<br />
head: 1.30<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 30;    selected revisions: 30<br />
description:<br />
In file this is processing client thread this call from the server in file return and pasing argument is void *<br />
then decalre a struct operations type a variable then open a fifo in read only mode then read the data all.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2016/02/25 06:27:07;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2016/02/24 11:00:55;  author: root;  state: Exp;  lines: +11 -1<br />
In fioe        fd=open(&#8220;fifo&#8221;,O_RDONLY);</p>
<p>In file calling a sem_wait and sem_post and display this values.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2016/02/24 09:59:46;  author: root;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2016/02/24 09:28:27;  author: root;  state: Exp;  lines: +2 -0<br />
In file this thread starting call to the sem_wait beacuse now this thread for read for the working and any another<br />
thread don&#8217;t interupted so then this thread complete the work then call to the sem_post beacuse this thread works are complted and out of critical section this thread .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2016/02/24 09:17:08;  author: root;  state: Exp;  lines: +1 -1<br />
In file removes a sum bugs.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2016/02/24 09:16:27;  author: root;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/02/24 09:15:13;  author: root;  state: Exp;  lines: +2 -2<br />
In file decalre a properly sem<br />
sem_t type sem2 variable .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/02/24 08:45:16;  author: root;  state: Exp;  lines: +5 -3<br />
In file fretch a semaphore a variable void * type then this variable type cast in sem_init type and before signals methmethod are falied in thread because thread to main thread don&#8217;t send a signals always because thread id we do not can find<br />
in main_thread so that reason is falied<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/02/23 16:44:20;  author: root;  state: Exp;  lines: +1 -0<br />
decalre a pthread_t type id variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/02/23 16:39:52;  author: root;  state: Exp;  lines: +4 -1<br />
In file frecth the value in thread id void * type then type cast of pthread_id data type then pthread_kill using the<br />
SIGINT signal send the the main thread .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/02/21 09:48:10;  author: root;  state: Exp;  lines: +1 -1<br />
In file some corrections in code.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/21 09:42:17;  author: root;  state: Exp;  lines: +7 -1<br />
In file a get a data then solve the result means two variable add and in store a result variable then open a fifo<br />
in write only mode then write the result.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/21 09:18:11;  author: root;  state: Exp;  lines: +3 -3<br />
In file remvoe the sleep in 3 second<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/21 08:41:18;  author: root;  state: Exp;  lines: +2 -2<br />
In file pass a argument in a void * variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/21 08:29:01;  author: root;  state: Exp;  lines: +3 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/21 08:15:14;  author: root;  state: Exp;  lines: +1 -1<br />
In file frecth a agrument is void * c<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/21 08:14:13;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/21 08:08:58;  author: root;  state: Exp;  lines: +1 -1<br />
In file fretch the argument thread_id varable void *<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/21 07:40:25;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: request_client.c,v<br />
Working file: request_client.c<br />
head: 1.13<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 13;    selected revisions: 13<br />
description:<br />
In file assgin a data in structure then open a fifo in write only mode then write the data .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/02/23 11:42:19;  author: root;  state: Exp;  lines: +1 -1<br />
In file signal handler change a return type only void not a void *.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/02/23 11:39:07;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/02/23 10:23:23;  author: root;  state: Exp;  lines: +16 -4<br />
In file make a signal handler names functions in file top and in which file calling to that functions and then add a<br />
pause() and when SIGINT signal is genrate then calling to signal handler functions and sleep is removes in file .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/02/21 11:34:30;  author: root;  state: Exp;  lines: +1 -0<br />
In file check how working.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/02/21 11:24:56;  author: root;  state: Exp;  lines: +2 -1<br />
In file calling to sleep.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/21 11:23:55;  author: root;  state: Exp;  lines: +2 -2<br />
In file some removes a bugs .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/21 11:23:10;  author: root;  state: Exp;  lines: +2 -2<br />
In file decarle a result variable .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/21 11:09:51;  author: root;  state: Exp;  lines: +17 -0<br />
In file open a fifo in read only mode if fd is negative then call to open then read a result if read is failed then<br />
report to read then display the result.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/20 17:45:12;  author: root;  state: Exp;  lines: +1 -1<br />
In file add a count varable how many bytes write a request_client in fifo then return a count any case count falied then then report it.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/20 13:17:05;  author: root;  state: Exp;  lines: +1 -0<br />
In file decalre a fd,count variables.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/20 13:16:15;  author: root;  state: Exp;  lines: +3 -3<br />
In file some removes a bugs<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/20 13:14:12;  author: root;  state: Exp;  lines: +1 -1<br />
In file included request.h file corrections the speling mistake .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/20 05:34:55;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: server.c,v<br />
Working file: server.c<br />
head: 1.43<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 43;    selected revisions: 43<br />
description:<br />
In file decalre a structure variable then check if user allow a permissions then create a fifo then read  a structure<br />
then display a structure .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.43<br />
date: 2016/02/25 08:28:56;  author: root;  state: Exp;  lines: +1 -1<br />
In file create a thread semaphore in semaphore a some eshu then resolve this .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.42<br />
date: 2016/02/25 06:25:03;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.41<br />
date: 2016/02/25 06:22:47;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.40<br />
date: 2016/02/25 06:15:14;  author: root;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.39<br />
date: 2016/02/25 06:13:16;  author: root;  state: Exp;  lines: +2 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.38<br />
date: 2016/02/25 05:58:10;  author: root;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
revision 1.37<br />
date: 2016/02/25 05:52:27;  author: root;  state: Exp;  lines: +25 -30<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.36<br />
date: 2016/02/24 12:36:19;  author: root;  state: Exp;  lines: +3 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.35<br />
date: 2016/02/24 12:30:26;  author: root;  state: Exp;  lines: +44 -39<br />
In file add a some if conditions.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2016/02/24 11:36:48;  author: root;  state: Exp;  lines: +6 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2016/02/24 11:04:45;  author: root;  state: Exp;  lines: +10 -4<br />
In file calling a sem_wait and sem_post in 6 times and display the 6 times.<br />
.\<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2016/02/24 10:30:02;  author: root;  state: Exp;  lines: +3 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31<br />
date: 2016/02/24 10:08:40;  author: root;  state: Exp;  lines: +2 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2016/02/24 10:04:01;  author: root;  state: Exp;  lines: +9 -7<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2016/02/24 09:59:50;  author: root;  state: Exp;  lines: +6 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2016/02/24 09:31:47;  author: root;  state: Exp;  lines: +3 -2<br />
In file create thread before call to the sem_wait thread beacuse this thread is working of ready any other thread din&#8217;t interupted then write a data and then call to sem_post beasue this work is complted this main_thread out of critical<br />
sections.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2016/02/24 09:14:06;  author: root;  state: Exp;  lines: +1 -1<br />
In file remove a some errors.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2016/02/24 08:52:01;  author: root;  state: Exp;  lines: +15 -15<br />
In file create a thread semhaphore a and then add a condtions if any cases falied a so return -1 or any negative value<br />
and report the sem_init then add a sem_wait beause In critial section in thread then thread sem_post call then move<br />
and critical section  in main thread<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2016/02/23 16:41:47;  author: root;  state: Exp;  lines: +9 -13<br />
In file sleep(3) is system call removes and this replace a in pause and make a signal handler SIGINT signal and this<br />
handler function calling the in server means main thread .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2016/02/23 11:29:29;  author: root;  state: Exp;  lines: +2 -2<br />
In file just checking<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2016/02/23 10:26:22;  author: root;  state: Exp;  lines: +29 -2<br />
Im file send a signal send a SIGINT siganl in request client process .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2016/02/21 11:34:48;  author: root;  state: Exp;  lines: +0 -1<br />
In file check how working..<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2016/02/21 11:19:41;  author: root;  state: Exp;  lines: +21 -0<br />
In file get a result then open a fifo in write only mode then if fd is no is negative then report the open and out<br />
then write a result if any condition write is failed then report to write .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2016/02/21 10:52:08;  author: root;  state: Exp;  lines: +2 -3<br />
In file add twos sleep in 2-2 sec .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2016/02/21 09:44:06;  author: root;  state: Exp;  lines: +8 -0<br />
In file open a fifo then read only mode then read a result then display the result in server.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2016/02/21 09:26:33;  author: root;  state: Exp;  lines: +1 -0<br />
In file add a sleep in 2 second .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2016/02/21 09:25:17;  author: root;  state: Exp;  lines: +0 -1<br />
In file sleep is removed<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2016/02/21 09:18:30;  author: root;  state: Exp;  lines: +2 -2<br />
In file add a sleep in 3 second .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2016/02/21 08:41:43;  author: root;  state: Exp;  lines: +0 -1<br />
/.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2016/02/21 08:16:40;  author: root;  state: Exp;  lines: +1 -0<br />
In file c is decalre variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/02/21 08:15:39;  author: root;  state: Exp;  lines: +1 -1<br />
In file pass a agrument in thread c<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/02/21 08:14:14;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/02/21 08:12:39;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/02/21 08:09:56;  author: root;  state: Exp;  lines: +1 -1<br />
In file pass the argument in thread calling tym in server and before types to chnge a void * varbale .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/02/21 08:04:33;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/21 08:02:35;  author: root;  state: Exp;  lines: +1 -1<br />
In file put the NULL is some error then type cast is void *<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/21 08:01:09;  author: root;  state: Exp;  lines: +1 -1<br />
In file thread calling in agrument is NULL.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/21 07:54:08;  author: root;  state: Exp;  lines: +1 -1<br />
In file correction the thread_create to chnge pthread_create and give the thread id is reffrence<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/21 07:49:55;  author: root;  state: Exp;  lines: +2 -2<br />
In file declare a thread_id variable this data type of pthread_t<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/21 07:43:08;  author: root;  state: Exp;  lines: +14 -0<br />
In file firstly create a thread then thread created then open a fifo in write only mode then write a the data in fifo.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/20 17:58:58;  author: root;  state: Exp;  lines: +2 -2<br />
date: 2016/02/20 17:58:58;  author: root;  state: Exp;  lines: +2 -2<br />
In file server how many read a bytes sucessfully then return a no. of bytes store in count if read is failed then reporreport the read call .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/20 05:54:11;  author: root;  state: Exp;  lines: +3 -1<br />
In file declare a variables .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/20 05:35:20;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
(-SHELL SCRIPT-<br />
#! /bin/bash</p>
<p>delete()<br />
{<br />
rm -rf request_client<br />
rm -rf *.o<br />
rm -rf server<br />
}</p>
<p>edit()<br />
{<br />
read -p &#8220;do you want a edit further (y or n)&#8221; answer</p>
<p>if [ 'y' = $answer ]<br />
then</p>
<p>for file in $(ls *.h,v)<br />
do<br />
co -l $file<br />
done</p>
<p>for file in $(ls *.c,v)<br />
do<br />
co -l $file<br />
done<br />
delete<br />
exit 0<br />
fi</p>
<p>}</p>
<p>execute()<br />
{<br />
read -p &#8220;do you want a compile a project&#8221; answer</p>
<p>if [ 'y' = $answer ]<br />
then<br />
if ( gcc -c  server.c -lpthread)<br />
then<br />
echo &#8220;compile is successfull&#8221;<br />
else<br />
echo &#8220;compile is failed&#8221;<br />
edit<br />
fi</p>
<p>if ( gcc -o request_client request_client.c )<br />
then<br />
echo &#8220;compile is sucessfull&#8221;<br />
else<br />
echo &#8220;compile is failed&#8221;<br />
edit<br />
fi</p>
<p>if ( gcc -c processing_client.c -lpthread )<br />
then<br />
echo &#8220;compile is sucessfull&#8221;<br />
else<br />
echo &#8220;compile is failed&#8221;<br />
edit<br />
fi<br />
else<br />
edit<br />
fi</p>
<p>read -p &#8220;do you want a execute this project&#8221; answer</p>
<p>if [ 'y' = $answer ]<br />
then<br />
if (gcc -o server server.o processing_client.o -lpthread)<br />
then<br />
./server &amp; ./request_client -lpthread<br />
else<br />
echo &#8220;executeable is failed&#8221;<br />
edit<br />
fi<br />
else<br />
edit<br />
fi</p>
<p>}</p>
<p>logfile()<br />
{<br />
read -p &#8220;do you want a run a logfile&#8221; answer<br />
if [ 'y' = $answer ]<br />
then<br />
chmod +x rlog.sh<br />
./rlog.sh<br />
fi<br />
}</p>
<p>for file in $(ls *.h)<br />
do<br />
ci $file<br />
done</p>
<p>for file in $(ls *.c)<br />
do<br />
ci $file<br />
done</p>
<p>for file in $(ls *.h,v)<br />
do<br />
co $file<br />
done</p>
<p>for file in $(ls *.c,v)<br />
do<br />
co $file<br />
done<br />
execute<br />
logfile<br />
edit</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/single-client-server-and-single-thread-communication-with-using-the-shell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEVER SINGLE CLIENT FIFO AND PIPES WITH USE THE SHELL SCRIPT</title>
		<link>https://www.emblogic.com/blog/02/sever-single-client-fifo-and-pipes-with-use-the-shell-script/</link>
		<comments>https://www.emblogic.com/blog/02/sever-single-client-fifo-and-pipes-with-use-the-shell-script/#comments</comments>
		<pubDate>Sun, 07 Feb 2016 19:15:48 +0000</pubDate>
		<dc:creator><![CDATA[Gurbhej Gill]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13240</guid>
		<description><![CDATA[RCS file: header.h,v Working file: header.h head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1;     selected revisions: 1 description: In file include a all header files realted this project. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2016/02/04 &#8230; <a href="https://www.emblogic.com/blog/02/sever-single-client-fifo-and-pipes-with-use-the-shell-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;     selected revisions: 1<br />
description:<br />
In file include a all header files realted this project.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/04 11:32:41;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: request.h,v<br />
Working file: request.h<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
In file delacare a structure name is struct opreations and decalre a in member variable .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/04 20:20:28;  author: root;  state: Exp;  lines: +0 -1<br />
In file decalre result varable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/04 20:19:24;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/04 11:33:11;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: processing_client.c,v<br />
Working file: processing_client.c<br />
head: 1.8<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 8;     selected revisions: 8<br />
description:<br />
In file a getv the all structure data read the all structure using pipe and then found the result give the sever call to to the write.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/07 11:01:05;  author: root;  state: Exp;  lines: +2 -0<br />
In file removes the all sleeps.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/04 19:16:31;  author: root;  state: Exp;  lines: +1 -1<br />
In file display a operator.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/04 19:14:40;  author: root;  state: Exp;  lines: +1 -1<br />
In file some changing.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/04 19:12:48;  author: root;  state: Exp;  lines: +4 -1<br />
In file get a display structure in member variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/04 19:07:15;  author: root;  state: Exp;  lines: +1 -0<br />
In file calling sleep in 2 sec.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/04 19:05:20;  author: root;  state: Exp;  lines: +1 -1<br />
In file now write a result.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/04 18:50:16;  author: root;  state: Exp;  lines: +1 -0<br />
In file wfd,rfd and result are variables declare.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/04 13:33:06;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
RCS file: request_client.c,v<br />
Working file: request_client.c<br />
head: 1.8<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 8;     selected revisions: 8<br />
description:<br />
In file declare a struct operations type a variable and all sturcture members in values all assign .<br />
then call to the open and file open the all structure write a in fifo then call to the sleep in 5 sec.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/07 11:01:44;  author: root;  state: Exp;  lines: +1 -1<br />
In file check the this file write the data or not.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/04 20:20:54;  author: root;  state: Exp;  lines: +1 -1<br />
In file declare a result varibale and display the result .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/04 20:19:26;  author: root;  state: Exp;  lines: +7 -9<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/04 20:02:32;  author: root;  state: Exp;  lines: +20 -2<br />
In file get a result of the server and display the result and add a if else condition in a file.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/04 12:05:34;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/04 11:49:47;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/04 11:48:32;  author: root;  state: Exp;  lines: +14 -1<br />
In file add a some checking condtions.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/04 11:34:07;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: server.c,v<br />
Working file: server.c<br />
head: 1.11<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 11;    selected revisions: 11<br />
description:<br />
In file a first one declare a struct operations type a variable then calling to the system call is access and in condtions the fifo file in already avialable or not check the access then if not available the fifo file then call to mkfifo the n create fifo file and then call the open if open file is successfully then call to the read and read the structure in a fifo then all the structure is display in which some condions.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/02/07 11:02:37;  author: root;  state: Exp;  lines: +1 -3<br />
In file removes the all sleep.<br />
/.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/02/04 20:05:33;  author: root;  state: Exp;  lines: +15 -0<br />
In file get a result to proceesing client and then in sleep 3 sec then give the result of the request client .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/02/04 19:16:56;  author: root;  state: Exp;  lines: +1 -1<br />
In file read a result .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/02/04 18:55:15;  author: root;  state: Exp;  lines: +3 -3<br />
In file check the working .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/02/04 18:51:20;  author: root;  state: Exp;  lines: +2 -0<br />
In file get result to processing client and display a result in file.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/02/04 13:34:28;  author: root;  state: Exp;  lines: +25 -5<br />
In file call a first call to the pipe and create a pipe then call to fork and then add a switch statements then execl call and and write a data give the all structure to processing client and then get a result of the processing client .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/02/04 12:05:36;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/02/04 11:53:18;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/04 11:52:22;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/04 11:43:54;  author: root;  state: Exp;  lines: +2 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/02/04 11:36:18;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
SHELL SCRIPT</p>
<p>#! /bin/bash</p>
<p>delete()<br />
{<br />
rm -rf  server<br />
rm -rf  request_client<br />
}</p>
<p>edit()<br />
{<br />
read -p &#8220;do you want a edit further (y or n)&#8221; answer</p>
<p>if [ 'y' = $answer ]<br />
then</p>
<p>for file in $(ls *.h,v)<br />
do<br />
co -l $file<br />
done</p>
<p>for file in $(ls *.c,v)<br />
do<br />
co -l $file<br />
done<br />
delete<br />
exit 0<br />
fi<br />
}</p>
<p>execute()<br />
{<br />
read -p &#8220;do you want a execute script(y or n)&#8221; answer</p>
<p>if [ 'y' = $answer ]<br />
then<br />
if (gcc -o server server.c)<br />
then<br />
echo &#8220;compailation successfully&#8221;<br />
else<br />
echo &#8220;compailation is failed&#8221;<br />
edit<br />
fi</p>
<p>if (gcc -o request_client request_client.c)<br />
then<br />
echo &#8220;compailation successfully&#8221;<br />
else<br />
echo &#8220;compailation is failed&#8221;<br />
edit<br />
fi<br />
if (gcc -o processing_client processing_client.c)<br />
then<br />
echo &#8220;compailation successfully&#8221;<br />
else<br />
echo &#8220;compailation is failed&#8221;<br />
edit<br />
fi</p>
<p>else<br />
edit<br />
fi<br />
./server &amp; ./request_client<br />
}</p>
<p>logfile()<br />
{<br />
chmod +x rlog.sh<br />
./rlog.sh<br />
edit<br />
}</p>
<p>for file in $(ls *.h)<br />
do<br />
ci $file<br />
done</p>
<p>for file in $(ls *.c)<br />
do<br />
ci $file<br />
done</p>
<p>for file in $(ls *.h,v)<br />
do<br />
co $file<br />
done</p>
<p>for file in $(ls *.c,v)<br />
do<br />
co $file<br />
done<br />
execute<br />
read<br />
logfile</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/sever-single-client-fifo-and-pipes-with-use-the-shell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project03: Linux System Programming &amp; Client Server Communication</title>
		<link>https://www.emblogic.com/blog/02/project03-linux-system-programming-client-server-communication/</link>
		<comments>https://www.emblogic.com/blog/02/project03-linux-system-programming-client-server-communication/#comments</comments>
		<pubDate>Sun, 07 Feb 2016 13:08:43 +0000</pubDate>
		<dc:creator><![CDATA[Reena Rani]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13234</guid>
		<description><![CDATA[RCS file: fork.c,v Working file: fork.c head: 1.1 branch: locks: strict reena: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: process duplication for project 03: Inter Process Communication using fork() &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 &#8230; <a href="https://www.emblogic.com/blog/02/project03-linux-system-programming-client-server-communication/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: fork.c,v<br />
Working file: fork.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
        reena: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;     selected revisions: 1<br />
description:<br />
process duplication for project 03: Inter Process Communication<br />
using fork()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1    locked by: reena;<br />
date: 2016/02/07 12:58:41;  author: reena;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/project03-linux-system-programming-client-server-communication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEVER MULTIPLE CLIENT USING PIPES WITH USE A SHELL SCRIPT</title>
		<link>https://www.emblogic.com/blog/02/sever-multiple-client-using-pipes-with-use-a-shell-script/</link>
		<comments>https://www.emblogic.com/blog/02/sever-multiple-client-using-pipes-with-use-a-shell-script/#comments</comments>
		<pubDate>Thu, 04 Feb 2016 18:38:52 +0000</pubDate>
		<dc:creator><![CDATA[Gurbhej Gill]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13227</guid>
		<description><![CDATA[RCS file: header.h,v Working file: header.h head: 1.2 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 2;     selected revisions: 2 description: In file a include a header files related the this project &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.2 date: &#8230; <a href="https://www.emblogic.com/blog/02/sever-multiple-client-using-pipes-with-use-a-shell-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;     selected revisions: 2<br />
description:<br />
In file a include a header files related the this project<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/31 10:28:12;  author: root;  state: Exp;  lines: +0 -8<br />
remove a some statement.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/31 09:29:28;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: request.h,v<br />
Working file: request.h<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
In file a declare structure and in structure a three member variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/04 06:20:17;  author: root;  state: Exp;  lines: +4 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/03 14:13:25;  author: root;  state: Exp;  lines: +5 -1<br />
In file a declare a in structure another member variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/31 09:30:01;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;     selected revisions: 2<br />
description:<br />
In file a include a header files related the this project<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/31 10:28:12;  author: root;  state: Exp;  lines: +0 -8<br />
remove a some statement.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/31 09:29:28;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: request.h,v<br />
Working file: request.h<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
In file a declare structure and in structure a three member variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/02/04 06:20:17;  author: root;  state: Exp;  lines: +4 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/02/03 14:13:25;  author: root;  state: Exp;  lines: +5 -1<br />
In file a declare a in structure another member variable.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/31 09:30:01;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>SHELL SCRIPT</p>
<p>&nbsp;</p>
<p>delete()<br />
{<br />
rm -rf server<br />
rm -rf add_request_client<br />
rm -rf sub_request_client<br />
rm -rf mul_request_client<br />
rm -rf div_request_client<br />
rm -rf add_processing_client<br />
rm -rf sub_processing_client<br />
rm -rf mul_processing_client<br />
rm -rf div_processing_client</p>
<p>}<br />
edit()<br />
{</p>
<p>read -p &#8220;do you want a edit further (y or n) :&#8221; answer<br />
if [ 'y' = $answer ]<br />
then<br />
for file in $(ls *.h)<br />
do<br />
co -l $file<br />
done</p>
<p>for file in $(ls *.c)<br />
do<br />
co -l $file<br />
done</p>
<p>delete<br />
fi<br />
exit 0<br />
}</p>
<p>execute()<br />
{<br />
read -p &#8220;do you want a execute a script :&#8221; answer<br />
if [ 'y' = $answer ]<br />
then</p>
<p>if (gcc -o add_request_client add_request_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complations is failed&#8221;<br />
edit<br />
fi</p>
<p>if (gcc -o sub_request_client sub_request_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complations is failed&#8221;<br />
edit<br />
fi<br />
if (gcc -o mul_request_client mul_request_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complations is failed&#8221;<br />
edit<br />
fi</p>
<p>if (gcc -o div_request_client div_request_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complations is failed&#8221;<br />
edit<br />
fi</p>
<p>if (gcc -o add_processing_client add_processing_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complation is failed&#8221;<br />
edit<br />
fi<br />
if (gcc -o sub_processing_client sub_processing_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complation is failed&#8221;<br />
edit<br />
fi<br />
if (gcc -o mul_processing_client mul_processing_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complation is failed&#8221;<br />
edit<br />
fi</p>
<p>if (gcc -o div_processing_client div_processing_client.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complation is failed&#8221;<br />
edit<br />
fi</p>
<p>if (gcc -o server server.c)<br />
then<br />
echo &#8220;complations is successfull&#8221;<br />
else<br />
echo &#8220;complation is failed&#8221;<br />
edit<br />
fi</p>
<p>else<br />
edit<br />
fi</p>
<p>./server<br />
}</p>
<p>logfile()<br />
{<br />
read -p &#8220;do you want a run a logfile :&#8221; answer</p>
<p>if [ 'y' = $answer ]<br />
then<br />
chmod +x rlog.sh<br />
./rlog.sh<br />
fi<br />
edit</p>
<p>}</p>
<p>for file in $(ls *.h)<br />
do<br />
ci $file<br />
done</p>
<p>for file in $(ls *.c)<br />
do<br />
ci $file<br />
done</p>
<p>for file in $(ls *.h,v)<br />
do<br />
co $file<br />
done</p>
<p>for file in $(ls *.c,v)<br />
do<br />
co $file<br />
done</p>
<p>execute<br />
read<br />
logfile</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/sever-multiple-client-using-pipes-with-use-a-shell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Send a signal -Using Kill command</title>
		<link>https://www.emblogic.com/blog/01/how-to-send-a-signal-using-kill-command/</link>
		<comments>https://www.emblogic.com/blog/01/how-to-send-a-signal-using-kill-command/#comments</comments>
		<pubDate>Fri, 15 Jan 2016 12:01:08 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Linux Internals and System Programming]]></category>
		<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[kill]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux system programming]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[sending signals]]></category>
		<category><![CDATA[signal]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13175</guid>
		<description><![CDATA[Send a signal by Kill command ======================= - To send a signal to a process other than current task. - It has prototype :- int kill(pid_t pid, int signo); - It is included using header :- #include&#60;signal.h&#62; - The system &#8230; <a href="https://www.emblogic.com/blog/01/how-to-send-a-signal-using-kill-command/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Send a signal by Kill command<br />
=======================<br />
- To send a signal to a process other than current task.<br />
- It has prototype :-<br />
int kill(pid_t pid, int signo);<br />
- It is included using header :-<br />
#include&lt;signal.h&gt;<br />
- The system data type pid_t is defined in header :-<br />
#include&lt;sys/types.h&gt;<br />
- signo is the signal number of signal to be send.<br />
- pid is the PID of the process to which signal is to be send.<br />
- pid can take value:-<br />
* 0 &#8211;&gt; To send signo signal to every process in invoking process&#8217; process group<br />
* -1 &#8211;&gt;To send signo signal to every process for which invoking process has permission to send a signal, except itself and init<br />
* n(&lt;-1) &#8211;&gt; All process in process group<br />
* n(&gt;0)  &#8211;&gt; process with PID n is signalled.<br />
- This take an optional signal name or number and the PID to send the signal.</p>
<p>- For eg. To send &#8216;hangup&#8217; signal to shell running on PID 1001, we use command :-<br />
kill(1001,HUP);<br />
- killall is used to send signal to all the processes running.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/how-to-send-a-signal-using-kill-command/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to register a signal</title>
		<link>https://www.emblogic.com/blog/01/how-to-register-a-signal/</link>
		<comments>https://www.emblogic.com/blog/01/how-to-register-a-signal/#comments</comments>
		<pubDate>Fri, 15 Jan 2016 11:59:04 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Linux Internals and System Programming]]></category>
		<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux system programming]]></category>
		<category><![CDATA[register a signal]]></category>
		<category><![CDATA[signals]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13173</guid>
		<description><![CDATA[Register a signal ================== - Program can handle a signal using signal library function signal(). - signal() is used to register the signal handler function with kernel on behalf of current process. - It is included in header :- #include&#60;header.h&#62; &#8230; <a href="https://www.emblogic.com/blog/01/how-to-register-a-signal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Register a signal<br />
==================<br />
- Program can handle a signal using signal library function signal().<br />
- signal() is used to register the signal handler function with kernel on behalf of current process.<br />
- It is included in header :-<br />
#include&lt;header.h&gt;<br />
- Prototype of function is :-<br />
void* (signal(int signo,void(*func)(int)))(int);<br />
- signal() function takes 2 parameters, signo and func.<br />
- The signal to be caught or ignored is given as argument signo.<br />
- The function to be called when the specified signal is received is given as func.<br />
- The function must take a single int argument (the signal received) and has return type void.</p>
<p>- The signal() command can be used in 3 modes :-<br />
(i) Default mode (Terminate the process)<br />
SIG_DFL &#8211;&gt; is used in place of func.<br />
(ii) Ignore the signal<br />
SIG_IGN &#8211;&gt; is used in place of func.<br />
(iii) User defined mode<br />
User defined function is used in place of func.</p>
<p>- The signal command returns the function which is setup to handle the signal, SIG_DFL or SIG_IGN in 3rd, 1st and 2nd cases respectively.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/how-to-register-a-signal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
