<?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; Ritu Gupta</title>
	<atom:link href="https://www.emblogic.com/blog/author/ritug1992/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>write routine for character driver</title>
		<link>https://www.emblogic.com/blog/12/write-routine-for-character-driver/</link>
		<comments>https://www.emblogic.com/blog/12/write-routine-for-character-driver/#comments</comments>
		<pubDate>Tue, 16 Dec 2014 08:15:01 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11917</guid>
		<description><![CDATA[RCS file: write_dev.c,v Working file: write_dev.c head: 1.37 branch: locks: strict root: 1.37 access list: symbolic names: keyword substitution: kv total revisions: 37; selected revisions: 37 description: start dev_write() &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.37 locked by: root; date: 2014/12/15 04:29:54; author: root; &#8230; <a href="https://www.emblogic.com/blog/12/write-routine-for-character-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: write_dev.c,v<br />
Working file: write_dev.c<br />
head: 1.37<br />
branch:<br />
locks: strict<br />
	root: 1.37<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 37;	selected revisions: 37<br />
description:<br />
start dev_write()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.37	locked by: root;<br />
date: 2014/12/15 04:29:54;  author: root;  state: Exp;  lines: +11 -7<br />
change condition for if statement for writing data to kernel buffer<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.36<br />
date: 2014/12/13 11:18:22;  author: root;  state: Exp;  lines: +1 -1<br />
perform checking<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.35<br />
date: 2014/12/10 21:52:14;  author: root;  state: Exp;  lines: +6 -0<br />
add NULL to the last quantum.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2014/12/09 02:55:05;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2014/12/09 02:53:14;  author: root;  state: Exp;  lines: +8 -2<br />
do mapping for read with read_dev()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2014/12/09 02:30:39;  author: root;  state: Exp;  lines: +1 -1<br />
change prototype for write_data()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31<br />
date: 2014/12/09 02:28:25;  author: root;  state: Exp;  lines: +27 -17<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2014/12/09 02:09:07;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2014/12/09 02:04:50;  author: root;  state: Exp;  lines: +5 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2014/12/09 02:03:12;  author: root;  state: Exp;  lines: +5 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2014/12/09 01:05:25;  author: root;  state: Exp;  lines: +11 -4<br />
modify write program<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2014/12/07 22:06:36;  author: root;  state: Exp;  lines: +3 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2014/12/07 22:05:08;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2014/12/07 22:04: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.23<br />
date: 2014/12/07 22:01:45;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2014/12/07 21:58:59;  author: root;  state: Exp;  lines: +6 -7<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2014/12/07 17:59:51;  author: root;  state: Exp;  lines: +44 -7<br />
define func write_data()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2014/12/07 17:35:43;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2014/12/07 17:34:47;  author: root;  state: Exp;  lines: +1 -1<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/12/07 17:33:05;  author: root;  state: Exp;  lines: +32 -0<br />
write func create_quantum()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/12/07 17:19:14;  author: root;  state: Exp;  lines: +9 -2<br />
check the success condition for func create_qset()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/12/07 17:15:30;  author: root;  state: Exp;  lines: +12 -0<br />
write func to create qset array<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/12/07 10:23:26;  author: root;  state: Exp;  lines: +1 -2<br />
find out number of quantum to create<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/12/07 10:21:44;  author: root;  state: Exp;  lines: +2 -2<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/12/07 10:19:06;  author: root;  state: Exp;  lines: +18 -9<br />
write base code for fun create_qset<br />
write fun create_scullqset()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/12/06 10:43:41;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/12/06 10:38:44;  author: root;  state: Exp;  lines: +9 -2<br />
find number of quantum to create to store data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/12/06 10:24:00;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/12/06 10:19:05;  author: root;  state: Exp;  lines: +1 -1<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/12/06 10:17:15;  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: 2014/12/06 10:14:56;  author: root;  state: Exp;  lines: +37 -0<br />
define function create_qset to create qset used to store data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/12/06 09:11:13;  author: root;  state: Exp;  lines: +4 -0<br />
get the value of no of qsets used to write data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/12/06 09:10:11;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/12/06 09:06:59;  author: root;  state: Exp;  lines: +7 -0<br />
declare a variable size to find size of qset<br />
declare variable noqset to store the value of no of qsets used to write the provided data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/12/06 08:19:18;  author: root;  state: Exp;  lines: +0 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/12/06 08:07:02;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/12/06 07:51:10;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/write-routine-for-character-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trim() for character driver</title>
		<link>https://www.emblogic.com/blog/12/trim-for-character-driver/</link>
		<comments>https://www.emblogic.com/blog/12/trim-for-character-driver/#comments</comments>
		<pubDate>Tue, 16 Dec 2014 08:13:29 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11915</guid>
		<description><![CDATA[RCS file: trim.c,v Working file: trim.c head: 1.14 branch: locks: strict root: 1.14 access list: symbolic names: keyword substitution: kv total revisions: 14; selected revisions: 14 description: &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.14 locked by: root; date: 2014/12/13 11:18:22; author: root; state: Exp; &#8230; <a href="https://www.emblogic.com/blog/12/trim-for-character-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: trim.c,v<br />
Working file: trim.c<br />
head: 1.14<br />
branch:<br />
locks: strict<br />
	root: 1.14<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 14;	selected revisions: 14<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14	locked by: root;<br />
date: 2014/12/13 11:18:22;  author: root;  state: Exp;  lines: +13 -2<br />
perform checking<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/12/13 10:42:16;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/12/13 09:18:31;  author: root;  state: Exp;  lines: +3 -20<br />
debuging<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/12/13 09:10:37;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/12/13 08:51:22;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/12/13 08:12: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.8<br />
date: 2014/12/13 08:09:33;  author: root;  state: Exp;  lines: +31 -23<br />
modify trim<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/12/12 11:41: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.6<br />
date: 2014/12/12 11:22:46;  author: root;  state: Exp;  lines: +3 -2<br />
modify trim<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/12/12 11:13:36;  author: root;  state: Exp;  lines: +3 -3<br />
modify trim<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/12/11 10:19:24;  author: root;  state: Exp;  lines: +3 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/12/11 09:36:47;  author: root;  state: Exp;  lines: +30 -1<br />
write trim()<br />
kfree the quantum and qset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/12/09 01:53:00;  author: root;  state: Exp;  lines: +1 -1<br />
change prototype for trim()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/12/09 01:50:41;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/trim-for-character-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>open() routine for character driver</title>
		<link>https://www.emblogic.com/blog/12/open-routine-for-character-driver/</link>
		<comments>https://www.emblogic.com/blog/12/open-routine-for-character-driver/#comments</comments>
		<pubDate>Tue, 16 Dec 2014 08:12:10 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11913</guid>
		<description><![CDATA[RCS file: open_dev.c,v Working file: open_dev.c head: 1.12 branch: locks: strict root: 1.12 access list: symbolic names: keyword substitution: kv total revisions: 12; selected revisions: 12 description: open function for character driver is declared in this file &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.12 &#8230; <a href="https://www.emblogic.com/blog/12/open-routine-for-character-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: open_dev.c,v<br />
Working file: open_dev.c<br />
head: 1.12<br />
branch:<br />
locks: strict<br />
	root: 1.12<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 12;	selected revisions: 12<br />
description:<br />
open function for character driver is declared in this file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12	locked by: root;<br />
date: 2014/12/11 09:36:47;  author: root;  state: Exp;  lines: +1 -1<br />
modify proototype for trim<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/12/09 01:53:00;  author: root;  state: Exp;  lines: +1 -1<br />
change prototype for trim()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/12/09 01:13: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.9<br />
date: 2014/12/09 01:05:25;  author: root;  state: Exp;  lines: +5 -0<br />
modify write program<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/12/07 23:30: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.7<br />
date: 2014/12/07 23:29:53;  author: root;  state: Exp;  lines: +3 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/12/06 08:05:08;  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: 2014/12/05 02:06: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.4<br />
date: 2014/12/05 02:04:07;  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: 2014/12/02 11:52:28;  author: root;  state: Exp;  lines: +20 -0<br />
declared a local variable of type struct ScullDev to point to memory of device<br />
use container_of to map i_cdev of struct inode with c_dev of struct ScullDev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/12/02 10:55:58;  author: root;  state: Exp;  lines: +4 -2<br />
there was an error in printk() statement<br />
remove that error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/12/02 10:50:45;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/open-routine-for-character-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Registering and unregistering the  character driver into and from the kernel.</title>
		<link>https://www.emblogic.com/blog/11/rcs-file-for-character-driver-upto-registering-and-unregistering-the-driver-into-and-from-the-kernel/</link>
		<comments>https://www.emblogic.com/blog/11/rcs-file-for-character-driver-upto-registering-and-unregistering-the-driver-into-and-from-the-kernel/#comments</comments>
		<pubDate>Tue, 25 Nov 2014 19:15:01 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11890</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 the header file for character driver in this file i include &#8230; <a href="https://www.emblogic.com/blog/11/rcs-file-for-character-driver-upto-registering-and-unregistering-the-driver-into-and-from-the-kernel/">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 the header file for character driver<br />
in this file i include kernel header files<br />
included linux/kernel.h<br />
included linux/init.h<br />
included linux/fs.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2	locked by: root;<br />
date: 2014/11/25 17:33:53;  author: root;  state: Exp;  lines: +2 -0<br />
include file linux/kdev_t.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/25 06:17:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: ./declaration.h,v<br />
Working file: ./declaration.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 file in which all the declaration for kernel module is made<br />
included file linux/module.h<br />
declare license name<br />
declare author namee<br />
give description for the module<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3	locked by: root;<br />
date: 2014/11/25 17:33:53;  author: root;  state: Exp;  lines: +1 -4<br />
declared variable minor_no of type int<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/25 17:20:57;  author: root;  state: Exp;  lines: +1 -0<br />
declared extern variable dev of type dev_t<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/25 06:17:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: ./init.c,v<br />
Working file: ./init.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 the file which exicuted after inserting module to the kernel<br />
resistering the module using register_chrdev()<br />
get the major number for module<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4	locked by: root;<br />
date: 2014/11/25 17:33:53;  author: root;  state: Exp;  lines: +4 -3<br />
get major and minor number from the var dev of type dev_t using macros MAJOR() and MINOR()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/11/25 17:20:57;  author: root;  state: Exp;  lines: +7 -5<br />
remove the use of register_chrdev function for registering device into the kernel<br />
register driver into the kerrnel using alloc_chrdev_region()<br />
declared variable dev of type dev_t<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/25 06:24:41;  author: root;  state: Exp;  lines: +2 -2<br />
change priority for printing messages in ring buffer for kernel<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/25 06:17:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: ./exit_fun.c,v<br />
Working file: ./exit_fun.c<br />
head: 1.6<br />
branch:<br />
locks: strict<br />
	root: 1.6<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 6;	selected revisions: 6<br />
description:<br />
this file executes after rmmod<br />
unregister module using unregister_chrdev<br />
define cleanup function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6	locked by: root;<br />
date: 2014/11/25 17:33:53;  author: root;  state: Exp;  lines: +1 -1<br />
print major and minor number into the kernel buffer<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/11/25 17:27:25;  author: root;  state: Exp;  lines: +1 -1<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/11/25 17:20:57;  author: root;  state: Exp;  lines: +2 -2<br />
remove the use of unregister_chrdev() for unregisterning driver from the kernel<br />
unregister driver from the kernel using unregister_chrdev_region()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/11/25 06:24:41;  author: root;  state: Exp;  lines: +1 -1<br />
change priority for printing messages in ring buffer for kernel<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/25 06:23:16;  author: root;  state: Exp;  lines: +1 -0<br />
give message to the kernel for unregistering the module<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/25 06:17:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/11/rcs-file-for-character-driver-upto-registering-and-unregistering-the-driver-into-and-from-the-kernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPC based project using threads</title>
		<link>https://www.emblogic.com/blog/11/ipc-based-project-using-threads/</link>
		<comments>https://www.emblogic.com/blog/11/ipc-based-project-using-threads/#comments</comments>
		<pubDate>Fri, 21 Nov 2014 17:51:28 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11838</guid>
		<description><![CDATA[RCS for sever file RCS file: server.c,v Working file: server.c head: 1.34 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 34; selected revisions: 34 description: server program using threads &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.34 date: 2014/11/21 06:58:33; author: &#8230; <a href="https://www.emblogic.com/blog/11/ipc-based-project-using-threads/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>RCS for sever file</strong></p>
<p>RCS file: server.c,v<br />
Working file: server.c<br />
head: 1.34<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 34;	selected revisions: 34<br />
description:<br />
server program using threads<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2014/11/21 06:58: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.33<br />
date: 2014/11/21 06:57:13;  author: root;  state: Exp;  lines: +8 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2014/11/21 06:39: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.31<br />
date: 2014/11/21 06:37:42;  author: root;  state: Exp;  lines: +1 -1<br />
give client id as a type for message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2014/11/21 06:13:45;  author: root;  state: Exp;  lines: +21 -37<br />
make 100 threads<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2014/11/20 09:46:12;  author: root;  state: Exp;  lines: +12 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2014/11/20 09:16:19;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2014/11/20 09:15:35;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2014/11/20 09:10:45;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2014/11/20 09:09:43;  author: root;  state: Exp;  lines: +6 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2014/11/20 09:07:43;  author: root;  state: Exp;  lines: +6 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2014/11/20 08:59:07;  author: root;  state: Exp;  lines: +5 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2014/11/20 08:57:50;  author: root;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2014/11/20 08:56:35;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2014/11/20 08:56:00;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2014/11/20 08:54:45;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/11/20 08:53: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.17<br />
date: 2014/11/20 08:52:18;  author: root;  state: Exp;  lines: +5 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/11/20 08:49:17;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/11/20 08:45:13;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/11/20 08:37:58;  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: 2014/11/20 08:37: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.12<br />
date: 2014/11/20 08:36:57;  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: 2014/11/20 08:30:25;  author: root;  state: Exp;  lines: +15 -17<br />
compute result and write it to themessage queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/11/20 07:59:41;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/11/20 07:57:11;  author: root;  state: Exp;  lines: +4 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/11/20 07:52:29;  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: 2014/11/20 07:50: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: 2014/11/20 07:47:57;  author: root;  state: Exp;  lines: +54 -6<br />
depending upon the information received new thread is created using pthread_create function call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/11/20 06:52:56;  author: root;  state: Exp;  lines: +9 -1<br />
receive message from message queue using msgrcv function call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/11/20 06:42:53;  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: 2014/11/20 06:39:55;  author: root;  state: Exp;  lines: +19 -1<br />
create meassage queue using msgget function<br />
control message queue operation using msgctl<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/19 19:36:38;  author: root;  state: Exp;  lines: +1 -1<br />
included file header.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/19 18:06:28;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p><strong>RCS for client file</strong><br />
RCS file: ./client1.c,v<br />
Working file: ./client1.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 />
this is a file for client 1 which communicates with the server<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/11/21 06:38:26;  author: root;  state: Exp;  lines: +2 -1<br />
get process id and send to the server<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/11/20 09:32:50;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/11/20 08:35:23;  author: root;  state: Exp;  lines: +3 -1<br />
recieve reesult from the message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/11/20 06:41:03;  author: root;  state: Exp;  lines: +15 -1<br />
define a variable of the form struct msgbuf<br />
assign value to the variable<br />
send data to through message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/11/19 20:15:01;  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: 2014/11/19 20:14:35;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/11/19 20:13:50;  author: root;  state: Exp;  lines: +8 -3<br />
use msgctl to control message queue operations<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/11/19 19:57:16;  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: 2014/11/19 19:54:52;  author: root;  state: Exp;  lines: +11 -0<br />
use msgget function to create message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/19 19:37:48;  author: root;  state: Exp;  lines: +1 -1<br />
included file header.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/19 18:10:35;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
<strong>RCS for header file</strong></p>
<p>RCS file: ./header.h,v<br />
Working file: ./header.h<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 />
header file for client-serverr program using threads<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/11/21 06:38:06;  author: root;  state: Exp;  lines: +2 -0<br />
define a new element p_id in structure msgbuf<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/11/21 06:14:25;  author: root;  state: Exp;  lines: +1 -3<br />
give prototype for perform_op<br />
remove prototype for perform_add, perform_sub, perform_mul functions<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/11/20 08:36: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.5<br />
date: 2014/11/20 08:34:49;  author: root;  state: Exp;  lines: +6 -0<br />
define a structure named result to store the computed result<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/11/20 07:48:49;  author: root;  state: Exp;  lines: +4 -1<br />
included header file pthread.h<br />
give prototype for threads perofrm_add, perform_sub, perform_mul<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/11/19 20:17:58;  author: root;  state: Exp;  lines: +15 -0<br />
define a structure msg_format to define format of information send by client<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/19 19:36:52;  author: root;  state: Exp;  lines: +3 -1<br />
included header files sys/types.h , sys/ipc.h , sys/msg.h to use message queue as a IPC mechanism<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/19 18:10:51;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/11/ipc-based-project-using-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPC based server-client project using message queue</title>
		<link>https://www.emblogic.com/blog/11/11771/</link>
		<comments>https://www.emblogic.com/blog/11/11771/#comments</comments>
		<pubDate>Wed, 12 Nov 2014 15:54:42 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11771</guid>
		<description><![CDATA[Header file RCS for IPC project using message queue: RCS file: ./header.h,v Working file: ./header.h head: 1.4 branch: locks: strict root: 1.4 access list: symbolic names: keyword substitution: kv total revisions: 4; selected revisions: 4 description: header file for client &#8230; <a href="https://www.emblogic.com/blog/11/11771/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Header file RCS for IPC project using message queue:</strong></p>
<p>RCS file: ./header.h,v<br />
Working file: ./header.h<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 />
header file for client server program using message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4 locked by: root;<br />
date: 2014/11/12 12:09:26; author: root; state: Exp; lines: +6 -0<br />
define a struct named result to store the calculated result and send back this result to tha client with a type 2<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/11/12 11:54:09; author: root; state: Exp; lines: +8 -1<br />
define structure struct message<br />
this structure has a format of message to be sent in message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/12 10:04:38; author: root; state: Exp; lines: +5 -0<br />
define structure msgbuf to specify the message format<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/12 09:38:23; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p><strong>Server file RCS for IPC project using message queue:</strong></p>
<p>RCS file: ./server.c,v<br />
Working file: ./server.c<br />
head: 1.9<br />
branch:<br />
locks: strict<br />
root: 1.9<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 9; selected revisions: 9<br />
description:<br />
server for client server project using message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9 locked by: root;<br />
date: 2014/11/12 12:17:41; author: root; state: Exp; lines: +24 -21<br />
insert process of receiving message from client, procesing it and sending output back to the client in a while loop so that<br />
more than one client can request.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/11/12 12:12: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: 2014/11/12 12:10:15; author: root; state: Exp; lines: +22 -1<br />
define variable re of type struct result tto store calculated result<br />
send this calculated result back to the client with a type 2<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/11/12 11:55:11; author: root; state: Exp; lines: +4 -2<br />
change the message format from character to struct message i.e., 2 int values and one char<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/11/12 10:11:36; author: root; state: Exp; lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/11/12 10:05:18; author: root; state: Exp; lines: +10 -0<br />
receive messege from message queue using msgrcv()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/11/12 09:52:05; author: root; state: Exp; lines: +9 -1<br />
perform control operation on message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/12 09:43:40; author: root; state: Exp; lines: +15 -0<br />
create messeage queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/12 09:38:23; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p><strong>Header file RCS for IPC project using message queue:</strong><br />
RCS file: ./client1.c,v<br />
Working file: ./client1.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 />
client file for client serverr project using messege queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7 locked by: root;<br />
date: 2014/11/12 12:11:02; author: root; state: Exp; lines: +4 -0<br />
define variable res to store the received result from the server<br />
the variable res has a type struct result<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/11/12 11:55:58; author: root; state: Exp; lines: +11 -4<br />
change the message format from character to struct message i.e., 2 int values and 1 char<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/11/12 10:11:37; author: root; state: Exp; lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/11/12 10:09:35; author: root; state: Exp; lines: +13 -1<br />
send message to message queue using msgsnd()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/11/12 09:52:29; author: root; state: Exp; lines: +9 -1<br />
perform control operation on message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/11/12 09:43:53; author: root; state: Exp; lines: +12 -0<br />
create message queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/11/12 09:38:23; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/11/11771/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>client-server communication using PIPES</title>
		<link>https://www.emblogic.com/blog/11/client-server-communication-using-pipes/</link>
		<comments>https://www.emblogic.com/blog/11/client-server-communication-using-pipes/#comments</comments>
		<pubDate>Fri, 07 Nov 2014 09:49:40 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11726</guid>
		<description><![CDATA[server.c: #include"header1.h" int main() { pid_t pid_c,pid_p; int fd_c[2],fd_p[2],counter=0,pipec_success,pipep_success,stat_val,res; char fd_cr[2],fd_cw[2],fd_pr[2],fd_pw[2],*path; struct data_format data; path = malloc(sizeof(char)*50); while(counter &#60; 3) { pipec_success = pipe(fd_c); if(pipec_success != 0) { perror("Pipe client:"); return -1; } sprintf(fd_cr,"%d",fd_c[0]); sprintf(fd_cw,"%d",fd_c[1]); printf("Enter path\n"); gets(path); pid_c = &#8230; <a href="https://www.emblogic.com/blog/11/client-server-communication-using-pipes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>server.c:</strong></p>
<pre>
#include"header1.h"

int main()
{
    pid_t pid_c,pid_p;
    int fd_c[2],fd_p[2],counter=0,pipec_success,pipep_success,stat_val,res;
    char fd_cr[2],fd_cw[2],fd_pr[2],fd_pw[2],*path;
    struct data_format data;

    path = malloc(sizeof(char)*50);

    while(counter &lt; 3)
    {
        pipec_success = pipe(fd_c);
        if(pipec_success != 0)
        {
            perror("Pipe client:");
            return -1;
        }

        sprintf(fd_cr,"%d",fd_c[0]);
        sprintf(fd_cw,"%d",fd_c[1]);

        printf("Enter path\n");
        gets(path);
        pid_c = fork();

        if(pid_c == 0)
        {
            execl(path,fd_cw,"input",NULL);
        }

        if(pid_c != 0)
            wait(&amp;stat_val);

        read(fd_c[0],&amp;data,sizeof(data));
        //printf("read data is %d %d %c",data.num1,data.num2,data.operation);
        pipep_success = pipe(fd_p);
        if(pipep_success != 0)
        {
            perror("Pipe process:");
            return -1;
        }

        write(fd_p[1],&amp;data,sizeof(data));

        sprintf(fd_pr,"%d",fd_p[0]);
        sprintf(fd_pw,"%d",fd_p[1]);

        switch (data.operation)
        {
            case '+':
                pid_p = fork();

                if(pid_p == 0)
                {
                    execl("/home/ritu/emblogic/project_3/adder",fd_pr,fd_pw,NULL);
                }

                if(pid_p != 0)
                wait(&amp;stat_val);
                break;
            case '-':
                pid_p = fork();

                if(pid_p == 0)
                {
                    execl("/home/ritu/emblogic/project_3/subtractor",fd_pr,fd_pw,NULL);
                }

                if(pid_p != 0)
                    wait(&amp;stat_val);
                break;
            case '*':
                 pid_p = fork();

                if(pid_p == 0)
                {
                    execl("/home/ritu/emblogic/project_3/multiplier",fd_pr,fd_pw,NULL);
                }

                if(pid_p != 0)
                    wait(&amp;stat_val);
                break;
        }

        read(fd_p[0],&amp;res,sizeof(res));
        write(fd_c[1],&amp;res,sizeof(res));
        pid_c = fork();
        if(pid_c == 0)
        {
            execl(path,fd_cr,fd_cw,"output",NULL);
        }

        if(pid_c != 0)
            wait(&amp;stat_val);

        counter++;
    }
    return 0;
}</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/11/client-server-communication-using-pipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Program to pass file descriptor from one process to another</title>
		<link>https://www.emblogic.com/blog/10/program-to-pass-file-descriptor-from-one-process-to-another/</link>
		<comments>https://www.emblogic.com/blog/10/program-to-pass-file-descriptor-from-one-process-to-another/#comments</comments>
		<pubDate>Thu, 30 Oct 2014 15:36:10 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11624</guid>
		<description><![CDATA[Output of the program is: Main function starts File opened successfully with fd 3 i am in parent I am in child process and my pid is 1505 fd received from calling process is 3 file contains Welcome to emblogic. &#8230; <a href="https://www.emblogic.com/blog/10/program-to-pass-file-descriptor-from-one-process-to-another/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Output of the program is:</strong><br />
Main function starts<br />
File opened successfully with fd 3<br />
i am in parent<br />
I am in child process and my pid is 1505<br />
fd received from calling process is 3<br />
file contains<br />
Welcome to emblogic.</p>
<p>child terminated.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/program-to-pass-file-descriptor-from-one-process-to-another/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4-bit compression completed</title>
		<link>https://www.emblogic.com/blog/10/4-bit-compression-completed/</link>
		<comments>https://www.emblogic.com/blog/10/4-bit-compression-completed/#comments</comments>
		<pubDate>Sat, 18 Oct 2014 04:22:41 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Project 2: Multiple Data Compression and Encryption]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11607</guid>
		<description><![CDATA[RCS file: mdc.c,v Working file: mdc.c head: 1.45 branch: locks: strict root: 1.45 access list: symbolic names: keyword substitution: kv total revisions: 45; selected revisions: 45 description: create a base code for multiple data compression and encryption using iterative technique &#8230; <a href="https://www.emblogic.com/blog/10/4-bit-compression-completed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: mdc.c,v<br />
Working file: mdc.c<br />
head: 1.45<br />
branch:<br />
locks: strict<br />
        root: 1.45<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 45;    selected revisions: 45<br />
description:<br />
create a base code for multiple data compression and encryption using iterative technique<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.45   locked by: root;<br />
date: 2014/10/17 07:10:11;  author: root;  state: Exp;  lines: +21 -7<br />
define compression function for 4 bit code length<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.44<br />
date: 2014/10/17 06:02:25;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.43<br />
date: 2014/10/16 20:45:40;  author: root;  state: Exp;  lines: +3 -3<br />
write a compression code for code length 4 to check if data compressed successfully<br />
if it creates a compressed file of the size half of the original file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.42<br />
date: 2014/10/16 20:32:45;  author: root;  state: Exp;  lines: +24 -3<br />
write a compression function for 4 bit code length<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.41<br />
date: 2014/10/16 20:18:51;  author: root;  state: Exp;  lines: +9 -11<br />
there was some error in the code<br />
remove that error<br />
index form the master array read successfully<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.40<br />
date: 2014/10/16 20:05:47;  author: root;  state: Exp;  lines: +4 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.39<br />
date: 2014/10/16 20:01:54;  author: root;  state: Exp;  lines: +10 -4<br />
write break condition in compress4() function for EOL character<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.38<br />
date: 2014/10/16 19:42:37;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.37<br />
date: 2014/10/16 19:33:52;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.36<br />
date: 2014/10/16 19:28:07;  author: root;  state: Exp;  lines: +45 -26<br />
gave a small defination for function compress4()<br />
gave a defination for function search_index to search for the character in file for its index in master array<br />
call search_index() from compress4() and print the value of index to check if it working properly<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.35<br />
date: 2014/10/16 13:20:26;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2014/10/16 13:15:03;  author: root;  state: Exp;  lines: +36 -1<br />
define compress_data() function<br />
write code to check if enetered in compress_data function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2014/10/16 10:30:45;  author: root;  state: Exp;  lines: +39 -1<br />
define a function find_code_length()<br />
this function is used to find the code length used to compress the data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2014/10/15 07:35:41;  author: root;  state: Exp;  lines: +0 -4<br />
remove prototypes from functions from c<br />
remove prototypes of functions from c file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31<br />
date: 2014/10/15 07:06:45;  author: root;  state: Exp;  lines: +22 -21<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2014/10/15 07:01:34;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2014/10/15 06:59:02;  author: root;  state: Exp;  lines: +1 -1<br />
remove error in create_master_array_function<br />
declare integer i as a static variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2014/10/15 06:56:20;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2014/10/15 06:55:25;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2014/10/15 06:48:48;  author: root;  state: Exp;  lines: +23 -13<br />
gave prototype for create_master_array<br />
define function create_master_array<br />
make a call to create_master_array from function read_file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2014/10/15 06:33:54;  author: root;  state: Exp;  lines: +3 -3<br />
use command line arguments to send file name<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2014/10/15 06:13:52;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2014/10/15 05:57: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.22<br />
date: 2014/10/14 19:58:45;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2014/10/14 19:56:53;  author: root;  state: Exp;  lines: +10 -4<br />
use command line arguments to give the file name instead of hard coded it<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2014/10/14 19:21: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.19<br />
date: 2014/10/14 19:14:36;  author: root;  state: Exp;  lines: +61 -42<br />
provide proper indentation to the code<br />
use perror call to report the error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/10/14 19:01:02;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/10/14 18:59:01;  author: root;  state: Exp;  lines: +1 -1<br />
did some changes in function check_unique to get the desired result<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/10/14 18:47:58;  author: root;  state: Exp;  lines: +1 -1<br />
prevent LF(\n) to save in master array<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/10/14 18:44:44;  author: root;  state: Exp;  lines: +1 -1<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/10/14 18:43:49;  author: root;  state: Exp;  lines: +7 -4<br />
print total number of characters in master array<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/10/14 18:36:01;  author: root;  state: Exp;  lines: +2 -0<br />
allocate memory to master_array using malloc<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/10/14 18:34:14;  author: root;  state: Exp;  lines: +2 -2<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/10/14 18:28:48;  author: root;  state: Exp;  lines: +29 -1<br />
gave prototype for check_unique function<br />
check_unique function check the master array<br />
if read character found in the array it returns 0 to the calling function<br />
if not found returns 1<br />
a call to the function check_unique is made in read_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/10/14 17:55:17;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/10/14 17:50:04;  author: root;  state: Exp;  lines: +1 -0<br />
made a call to read_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/10/14 17:46:35;  author: root;  state: Exp;  lines: +16 -1<br />
gave a prototype for read_file function<br />
define function read<br />
read_file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/10/14 17:41: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.6<br />
date: 2014/10/14 17:39:50;  author: root;  state: Exp;  lines: +7 -3<br />
make a call to open_file function for opening a file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/10/14 17:35:54;  author: root;  state: Exp;  lines: +3 -1<br />
did some changes in open_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/10/14 17:33:51;  author: root;  state: Exp;  lines: +1 -1<br />
remove error in open_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/10/14 17:26:48;  author: root;  state: Exp;  lines: +8 -0<br />
gave the prototype for open_file function.<br />
open_file fuction is used to open a file and return a file descriptor to the calling function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/10/14 17:14:16;  author: root;  state: Exp;  lines: +1 -1<br />
use double quotes instead of triangular braces to include header.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/10/14 17:04:00;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/4-bit-compression-completed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Header file for MDC project</title>
		<link>https://www.emblogic.com/blog/10/header-file-for-mdc-project/</link>
		<comments>https://www.emblogic.com/blog/10/header-file-for-mdc-project/#comments</comments>
		<pubDate>Thu, 16 Oct 2014 13:04:32 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Project 2: Multiple Data Compression and Encryption]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11604</guid>
		<description><![CDATA[RCS file: header.h,v Working file: header.h head: 1.5 branch: locks: strict root: 1.5 access list: symbolic names: keyword substitution: kv total revisions: 5; selected revisions: 5 description: create header file for multiple data compression and encryption using iterative technique &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8230; <a href="https://www.emblogic.com/blog/10/header-file-for-mdc-project/">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.5<br />
branch:<br />
locks: strict<br />
        root: 1.5<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 5;     selected revisions: 5<br />
description:<br />
create header file for multiple data compression and encryption using iterative technique<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5    locked by: root;<br />
date: 2014/10/16 10:32:01;  author: root;  state: Exp;  lines: +1 -0<br />
gave prototype for find_code_length<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/10/15 07:37:13;  author: root;  state: Exp;  lines: +6 -0<br />
add prototypes of function from c file to header file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/10/14 18:34:24;  author: root;  state: Exp;  lines: +1 -0<br />
include header file stdlib.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/10/14 17:30:29;  author: root;  state: Exp;  lines: +1 -1<br />
included header file fcntl.h as this header file is to be used if we are using low level file I/O in our program<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/10/14 17:06:49;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/header-file-for-mdc-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Master array for data compression is created</title>
		<link>https://www.emblogic.com/blog/10/multiple-data-compression-and-encryption-using-iterative-technique-2/</link>
		<comments>https://www.emblogic.com/blog/10/multiple-data-compression-and-encryption-using-iterative-technique-2/#comments</comments>
		<pubDate>Thu, 16 Oct 2014 09:38:13 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Gupta]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>
		<category><![CDATA[Project 2: Multiple Data Compression and Encryption]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11593</guid>
		<description><![CDATA[RCS file: mdc.c,v Working file: mdc.c head: 1.32 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 32; selected revisions: 32 description: create a base code for multiple data compression and encryption using iterative technique &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision &#8230; <a href="https://www.emblogic.com/blog/10/multiple-data-compression-and-encryption-using-iterative-technique-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: mdc.c,v<br />
Working file: mdc.c<br />
head: 1.32<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 32; selected revisions: 32<br />
description:<br />
create a base code for multiple data compression and encryption using iterative technique<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2014/10/15 07:35:41; author: root; state: Exp; lines: +0 -4<br />
remove prototypes from functions from c<br />
remove prototypes of functions from c file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31<br />
date: 2014/10/15 07:06:45; author: root; state: Exp; lines: +22 -21<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2014/10/15 07:01:34; author: root; state: Exp; lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2014/10/15 06:59:02; author: root; state: Exp; lines: +1 -1<br />
remove error in create_master_array_function<br />
declare integer i as a static variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2014/10/15 06:56:20; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2014/10/15 06:55:25; author: root; state: Exp; lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2014/10/15 06:48:48; author: root; state: Exp; lines: +23 -13<br />
gave prototype for create_master_array<br />
define function create_master_array<br />
make a call to create_master_array from function read_file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2014/10/15 06:33:54; author: root; state: Exp; lines: +3 -3<br />
use command line arguments to send file name<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2014/10/15 06:13:52; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2014/10/15 05:57: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.22<br />
date: 2014/10/14 19:58:45; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2014/10/14 19:56:53; author: root; state: Exp; lines: +10 -4<br />
use command line arguments to give the file name instead of hard coded it<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2014/10/14 19:21: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.19<br />
date: 2014/10/14 19:14:36; author: root; state: Exp; lines: +61 -42<br />
provide proper indentation to the code<br />
use perror call to report the error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/10/14 19:01:02; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/10/14 18:59:01; author: root; state: Exp; lines: +1 -1<br />
did some changes in function check_unique to get the desired result<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/10/14 18:47:58; author: root; state: Exp; lines: +1 -1<br />
prevent LF(\n) to save in master array<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/10/14 18:44:44; author: root; state: Exp; lines: +1 -1<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/10/14 18:43:49; author: root; state: Exp; lines: +7 -4<br />
print total number of characters in master array<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/10/14 18:36:01; author: root; state: Exp; lines: +2 -0<br />
allocate memory to master_array using malloc<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/10/14 18:34:14; author: root; state: Exp; lines: +2 -2<br />
remove error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/10/14 18:28:48; author: root; state: Exp; lines: +29 -1<br />
gave prototype for check_unique function<br />
check_unique function check the master array<br />
if read character found in the array it returns 0 to the calling function<br />
if not found returns 1<br />
a call to the function check_unique is made in read_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/10/14 17:55:17; author: root; state: Exp; lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/10/14 17:50:04; author: root; state: Exp; lines: +1 -0<br />
made a call to read_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/10/14 17:46:35; author: root; state: Exp; lines: +16 -1<br />
gave a prototype for read_file function<br />
define function read<br />
read_file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/10/14 17:41: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.6<br />
date: 2014/10/14 17:39:50; author: root; state: Exp; lines: +7 -3<br />
make a call to open_file function for opening a file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/10/14 17:35:54; author: root; state: Exp; lines: +3 -1<br />
did some changes in open_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/10/14 17:33:51; author: root; state: Exp; lines: +1 -1<br />
remove error in open_file function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/10/14 17:26:48; author: root; state: Exp; lines: +8 -0<br />
gave the prototype for open_file function.<br />
open_file fuction is used to open a file and return a file descriptor to the calling function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/10/14 17:14:16; author: root; state: Exp; lines: +1 -1<br />
use double quotes instead of triangular braces to include header.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/10/14 17:04:00; author: root; state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/10/multiple-data-compression-and-encryption-using-iterative-technique-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
