<?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; pardeepkakash</title>
	<atom:link href="https://www.emblogic.com/blog/author/pardeepkakash/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>difference b/w printf ,fprintf,snprintf and sprintf</title>
		<link>https://www.emblogic.com/blog/08/difference-bw-printf-fprintfsnprintf-and-sprintf/</link>
		<comments>https://www.emblogic.com/blog/08/difference-bw-printf-fprintfsnprintf-and-sprintf/#comments</comments>
		<pubDate>Tue, 19 Aug 2014 07:08:48 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11394</guid>
		<description><![CDATA[printf, fprintf, sprintf, snprintf C File input/output Defined in header &#60;stdio.h&#62; (1) ?int printf( const char          *format, &#8230; );?   ?int printf( const char *restrict format, &#8230; );?   (2) int fprintf( FILE       &#8230; <a href="https://www.emblogic.com/blog/08/difference-bw-printf-fprintfsnprintf-and-sprintf/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h1 id="firstHeading" class="firstHeading">printf, fprintf, sprintf, snprintf</h1>
<div class="t-navbar">
<div class="t-navbar-sep"></div>
<div class="t-navbar-head"><a title="c" href="http://en.cppreference.com/w/c"> C</a></div>
<div class="t-navbar-sep"></div>
<div class="t-navbar-head"><a title="c/io" href="http://en.cppreference.com/w/c/io"> File input/output</a></div>
<div class="t-navbar-sep"></div>
</div>
<table class="t-dcl-begin">
<tbody>
<tr class="t-dsc-header">
<td>
<div>Defined in header <code>&lt;stdio.h&gt;</code></div>
</td>
<td></td>
<td></td>
</tr>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num">
<tr class="t-dcl-rev-aux">
<td></td>
<td rowspan="142">(1)</td>
<td></td>
</tr>
<tr class="t-dcl t-until-c99">
<td>
<div><span class="mw-geshi c source-c">?<span class="kw4">int</span> printf<span class="br0">(</span> <span class="kw4">const</span> <span class="kw4">char</span>          <span class="sy2">*</span>format, &#8230; <span class="br0">)</span><span class="sy4">;</span>?</span></div>
</td>
<td><span class="t-mark"> </span></td>
</tr>
<tr class="t-dcl t-since-c99">
<td>
<div><span class="mw-geshi c source-c">?<span class="kw4">int</span> printf<span class="br0">(</span> <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy2">*</span><span class="kw4">restrict</span> format, &#8230; <span class="br0">)</span><span class="sy4">;</span>?</span></div>
</td>
<td><span class="t-mark-rev t-since-c99"> </span></td>
</tr>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num">
<tr class="t-dcl-rev-aux">
<td></td>
<td rowspan="142">(2)</td>
<td></td>
</tr>
<tr class="t-dcl t-until-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">int</span> fprintf<span class="br0">(</span> <a href="http://en.cppreference.com/w/c/io"><span class="kw880">FILE</span></a>          <span class="sy2">*</span>stream, <span class="kw4">const</span> <span class="kw4">char</span>          <span class="sy2">*</span>format, &#8230; <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td><span class="t-mark"> </span></td>
</tr>
<tr class="t-dcl t-since-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">int</span> fprintf<span class="br0">(</span> <a href="http://en.cppreference.com/w/c/io"><span class="kw880">FILE</span></a> <span class="sy2">*</span><span class="kw4">restrict</span> stream, <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy2">*</span><span class="kw4">restrict</span> format, &#8230; <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td><span class="t-mark-rev t-since-c99"> </span></td>
</tr>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num">
<tr class="t-dcl-rev-aux">
<td></td>
<td rowspan="142">(3)</td>
<td></td>
</tr>
<tr class="t-dcl t-until-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">int</span> sprintf<span class="br0">(</span> <span class="kw4">char</span>          <span class="sy2">*</span>buffer, <span class="kw4">const</span> <span class="kw4">char</span>          <span class="sy2">*</span>format, &#8230; <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td></td>
</tr>
<tr class="t-dcl t-since-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">int</span> sprintf<span class="br0">(</span> <span class="kw4">char</span> <span class="sy2">*</span><span class="kw4">restrict</span> buffer, <span class="kw4">const</span> <span class="kw4">char</span> <span class="sy2">*</span><span class="kw4">restrict</span> format, &#8230; <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td><span class="t-mark-rev t-since-c99"> </span></td>
</tr>
</tbody>
<tbody>
<tr class="t-dcl t-since-c99">
<td>
<div><span class="mw-geshi c source-c"><span class="kw4">int</span> snprintf<span class="br0">(</span> <span class="kw4">char</span> <span class="sy2">*</span><span class="kw4">restrict</span> buffer, <span class="kw4">int</span> buf_size,<br />
<span class="kw4">const</span> <span class="kw4">char</span> <span class="sy2">*</span><span class="kw4">restrict</span> format, &#8230; <span class="br0">)</span><span class="sy4">;</span></span></div>
</td>
<td>(4)</td>
<td><span class="t-mark-rev t-since-c99"> </span></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>Loads the data from the given locations, converts them to character string equivalents and writes the results to a variety of sinks.</p>
<div class="t-li1"><span class="t-li">1)</span> Writes the results to <span class="t-lc"><a title="c/io" href="http://en.cppreference.com/w/c/io">stdout</a></span>.</div>
<div class="t-li1"><span class="t-li">2)</span> Writes the results to a file stream <code>stream</code>.</div>
<div class="t-li1"><span class="t-li">3)</span> Writes the results to a character string <code>buffer</code>.</div>
<div class="t-li1"><span class="t-li">4)</span> Writes the results to a character string <code>buffer</code>. At most <code>buf_size</code> &#8211; 1 characters are written. The resulting character string will be terminated with a null character, unless <code>buf_size</code> is zero.</div>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/difference-bw-printf-fprintfsnprintf-and-sprintf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about /proc</title>
		<link>https://www.emblogic.com/blog/08/about-proc-2/</link>
		<comments>https://www.emblogic.com/blog/08/about-proc-2/#comments</comments>
		<pubDate>Fri, 01 Aug 2014 06:23:43 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11333</guid>
		<description><![CDATA[The Linux kernel has two primary functions: to control access to physical devices on the computer and to schedule when and how processes interact with these devices. The /proc/ directory — also called the proc file system — contains a &#8230; <a href="https://www.emblogic.com/blog/08/about-proc-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The Linux kernel has two primary functions: to control access to physical devices on the computer and to schedule when and how processes interact with these devices. The <tt class="filename">/proc/</tt> directory — also called the <tt class="filename">proc</tt> file system — contains a hierarchy of special files which represent the current state of the kernel — allowing applications and users to peer into the kernel&#8217;s view of the system.</p>
<p>Within the <tt class="filename">/proc/</tt> directory, one can find a wealth of information detailing the system hardware and any processes currently running. In addition, some of the files within the <tt class="filename">/proc/</tt> directory tree can be manipulated by users and applications to communicate configuration changes to the kernel.It  also know as virtual file system.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/about-proc-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux kernel,device driver and some modules</title>
		<link>https://www.emblogic.com/blog/06/linux-kerneldevice-driver-and-some-modules/</link>
		<comments>https://www.emblogic.com/blog/06/linux-kerneldevice-driver-and-some-modules/#comments</comments>
		<pubDate>Wed, 25 Jun 2014 17:38:56 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Device Drivers]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10610</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Free_and_open-source-software_display_servers_and_UI_toolkits.svg/1024px-Free_and_open-source-software_display_servers_and_UI_toolkits.svg.png" alt="" width="1006" /></p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/linux-kerneldevice-driver-and-some-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>character driver connection</title>
		<link>https://www.emblogic.com/blog/06/character-driver-connection/</link>
		<comments>https://www.emblogic.com/blog/06/character-driver-connection/#comments</comments>
		<pubDate>Wed, 25 Jun 2014 14:59:39 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10608</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><img src="http://www.opensourceforu.com/wp-content/uploads/2011/02/figure_7_character_driver_overview.png" alt="http://www.opensourceforu.com/wp-content/uploads/2011/02/figure_7_character_driver_overview.png" /></p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/character-driver-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>difference between threaad and a process</title>
		<link>https://www.emblogic.com/blog/06/difference-between-threaad-and-a-process/</link>
		<comments>https://www.emblogic.com/blog/06/difference-between-threaad-and-a-process/#comments</comments>
		<pubDate>Fri, 13 Jun 2014 08:19:16 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10462</guid>
		<description><![CDATA[Following are some of the major differences between the thread and the processes : Processes do not share their address space while threads executing under same process share the address space. From the above point its clear that processes execute &#8230; <a href="https://www.emblogic.com/blog/06/difference-between-threaad-and-a-process/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Following are some of the major differences between the thread and the processes :</p>
<ul>
<li>Processes do not share their address space while threads executing under same process share the address space.</li>
<li>From the above point its clear that processes execute independent of each other and the synchronization between processes is taken care by kernel only while on the other hand the thread synchronization has to be taken care by the process under which the threads are executing</li>
<li>Context switching between threads is fast as compared to context switching between processes</li>
<li>The interaction between two processes is achieved only through the standard inter process communication while threads executing under the same process can communicate easily as they share most of the resources like memory, text segment etc</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/difference-between-threaad-and-a-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>thread using fifo with three client and three processing</title>
		<link>https://www.emblogic.com/blog/06/thread-using-fifo-with-three-client-and-three-processing/</link>
		<comments>https://www.emblogic.com/blog/06/thread-using-fifo-with-three-client-and-three-processing/#comments</comments>
		<pubDate>Fri, 13 Jun 2014 08:00:54 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10460</guid>
		<description><![CDATA[server head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.06.12.18.58.04;    author root;    state Exp; branches; next    ; desc @three client used into server1. @ 1.1 log @Initial revision @ client1 head    1.1; access; symbols; locks &#8230; <a href="https://www.emblogic.com/blog/06/thread-using-fifo-with-three-client-and-three-processing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>server</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.12.18.58.04;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@three client used into server1.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
<p>client1</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.11.23.57.33;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@single client .<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
processing 1</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.11.23.59.39;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
<p>client 2nd</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.12.19.01.26;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@client for server1 rcs file.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
<p>processing2</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.12.19.03.43;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@processing for server<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
<p>client 3</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.12.19.02.38;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@this is client3 for the server1<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
<p>processing 3</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.12.19.04.47;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@this is processing for server file.<br />
/<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/thread-using-fifo-with-three-client-and-three-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whether Linked List is linear or Non-linear data structure?</title>
		<link>https://www.emblogic.com/blog/06/whether-linked-list-is-linear-or-non-linear-data-structure/</link>
		<comments>https://www.emblogic.com/blog/06/whether-linked-list-is-linear-or-non-linear-data-structure/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 08:36:48 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10289</guid>
		<description><![CDATA[Logically linked list is a linear data structure because each node has a link to its next one. but physically it is not necessarily true because memory allocation to nodes may or may not be sequential..]]></description>
				<content:encoded><![CDATA[<p><b>Logically linked list is a linear data structure because each node has a link to its next one.<br />
but physically it is not necessarily true because memory allocation to nodes may or may not be sequential..</b></p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/whether-linked-list-is-linear-or-non-linear-data-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about ipc</title>
		<link>https://www.emblogic.com/blog/06/about-ipc/</link>
		<comments>https://www.emblogic.com/blog/06/about-ipc/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 08:31:19 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10287</guid>
		<description><![CDATA[Ipc mechanisms are mianly 5 types 1.pipes:it is related data only send from one pipe output is giving to another pipe input to share resouses pipe are used drawback:itis only related process only communicated 2.message queues:message queues are un related &#8230; <a href="https://www.emblogic.com/blog/06/about-ipc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p align="Justify">Ipc mechanisms are mianly 5 types</p>
<p>1.pipes:it is related data only send from one pipe output is giving to another pipe input</p>
<p>to share resouses pipe are used</p>
<p>drawback:itis only related <span id="IL_AD7" class="IL_AD">process</span> only communicated</p>
<p>2.message queues:message queues are un related process are also communicate with message queues</p>
<p>drawback:user dont know which process curently works</p>
<p>share memory:memory <span id="IL_AD9" class="IL_AD">shared</span> in distributed systems some memory wants to share some files that time it is use full</p>
<p>semaphores<br />
semaphore is <span id="IL_AD11" class="IL_AD">integer</span> type and in semaphore resourses give coding like negetive value means process are wants to use perticular resource waiting only</p>
<p>and 0 means no process is waiting</p>
<p>and 1 means one resource is free</p>
<p>and</p>
<p>sockets:sockets also ipc it is comunicate clients and server</p>
<p>with socket system calls connection oriented and connection less also</p>
<p><b> </b></p>
<hr noshade="noshade" size="1" />
<p align="Justify">IPCs are<br />
1.FIFO<br />
2.Message Queue<br />
3.Shared Memory<br />
4.PIPE<br />
5.Semaphore</p>
<p>we can also say the Sockets is one of the IPCs</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/about-ipc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is the difference between Storage structure and file structure?</title>
		<link>https://www.emblogic.com/blog/06/what-is-the-difference-between-storage-structure-and-file-structure/</link>
		<comments>https://www.emblogic.com/blog/06/what-is-the-difference-between-storage-structure-and-file-structure/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 07:27:05 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10285</guid>
		<description><![CDATA[The representation of a particular data structure in the memory of a computer is called a storage structure whereas a storage structure representation in auxiliary memory is often called a file structure. &#160;]]></description>
				<content:encoded><![CDATA[<p align="Justify">The representation of a particular data structure in the memory of a computer is called a storage structure whereas a storage structure representation in auxiliary memory is often called a file structure.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/what-is-the-difference-between-storage-structure-and-file-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIFFERENCE BETWEEN NULL ARRAY AND EMPTY ARRAY</title>
		<link>https://www.emblogic.com/blog/06/difference-between-null-array-and-empty-array/</link>
		<comments>https://www.emblogic.com/blog/06/difference-between-null-array-and-empty-array/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 07:19:24 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10283</guid>
		<description><![CDATA[null array&#8212;-when the size of array is not declared than the array is known as null array. EMPTY ARRAY&#8212;&#8212;-if an array having the size but not values than it&#8217;s known as empty array. EX = null array b[]; empty array &#8230; <a href="https://www.emblogic.com/blog/06/difference-between-null-array-and-empty-array/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><b>null array&#8212;-when the size of array is not declared than the array is known as null array.<br />
EMPTY ARRAY&#8212;&#8212;-if an array having the size but not values than it&#8217;s known as empty array.<br />
EX =<br />
null array b[];<br />
empty array b[size of array];</b></p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/difference-between-null-array-and-empty-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating pipes in C language</title>
		<link>https://www.emblogic.com/blog/06/creating-pipes-in-c-language/</link>
		<comments>https://www.emblogic.com/blog/06/creating-pipes-in-c-language/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 07:12:49 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10281</guid>
		<description><![CDATA[Creating &#8220;pipelines&#8221; with the C programming language can be a bit more involved than the simple shell example . To create a simple pipe with C, we make use of pipe(), open() and close() system calls. However there is a &#8230; <a href="https://www.emblogic.com/blog/06/creating-pipes-in-c-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Creating &#8220;pipelines&#8221; with the C programming language can be a bit more involved than the simple shell example . To create a simple pipe with C, we make use of <tt>pipe()</tt>, <tt>open()</tt> and <tt>close()</tt> system calls. However there is a simpler way: the <tt>popen()</tt> function. The syntax is given below:</p>
<pre>     FILE *popen ( char *command, char *type);
</pre>
<p>This standard library function creates a half-duplex pipeline by calling <tt>pipe()</tt> internally. It then forks a child process, exec the Bourne shell, and executes the &#8220;command&#8221; argument within the shell. Direction of data flow is determined by the second argument, &#8220;type&#8221;. It can be &#8220;r&#8221; or &#8220;w&#8221;, for &#8220;read&#8221; or &#8220;write&#8221;. It cannot be both! <tt>popen()</tt> returns the pointer to the new file stream or NULL on failure.</p>
<p>Pipes which are created with <tt>popen()</tt> must be closed with <tt>pclose()</tt>. <tt>popen()</tt> and <tt>pclose()</tt> share a striking resemblance to the standard file stream I/O functions <tt>fopen()</tt> and <tt>fclose()</tt>.</p>
<pre>     int pclose( FILE *stream );
</pre>
<p>The <tt>pclose()</tt> function performs a <tt>wait4()</tt> (waits for process termination) on the process forked by <tt>popen()</tt>. When it returns, it destroys the pipe and the file stream. Once again, it is synonymous with the <tt>fclose()</tt> function for normal stream-based file I/O. The <tt>pclose()</tt> returns <tt>wait4()</tt> status. If everything is all right it simply returns 0.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/creating-pipes-in-c-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducation Interprocess Communication (IPC), Pipes</title>
		<link>https://www.emblogic.com/blog/06/introducation-interprocess-communication-ipc-pipes/</link>
		<comments>https://www.emblogic.com/blog/06/introducation-interprocess-communication-ipc-pipes/#comments</comments>
		<pubDate>Tue, 03 Jun 2014 07:08:12 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10279</guid>
		<description><![CDATA[We have now began to see how multiple processes may be running on a machine and maybe be controlled (spawned by fork() by one of our programs. In numerous applications there is clearly a need for these processes to communicate &#8230; <a href="https://www.emblogic.com/blog/06/introducation-interprocess-communication-ipc-pipes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong></strong></p>
<p>We have now began to see how multiple processes may be running on a machine and maybe be controlled (spawned by <tt>fork()</tt> by one of our programs.</p>
<p>In numerous applications there is clearly a need for these processes to communicate with each exchanging data or control information. There are a few methods which can accomplish this task. We will consider:</p>
<ul>
<li>Pipes</li>
<li>Signals</li>
<li>Message Queues</li>
<li>Semaphores</li>
<li>Shared Memory</li>
<li>Sockets</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/introducation-interprocess-communication-ipc-pipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>semaphore</title>
		<link>https://www.emblogic.com/blog/05/semaphore-4/</link>
		<comments>https://www.emblogic.com/blog/05/semaphore-4/#comments</comments>
		<pubDate>Thu, 15 May 2014 12:16:31 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10103</guid>
		<description><![CDATA[ead    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.05.14.23.41.10;    author root;    state Exp; branches; next    ; desc @semaphore with semget,semctl,semop. @ 1.1 log @Initial revision @ text @#include&#60;stdio.h&#62; #include&#60;linux/sem.h&#62; #include&#60;stdlib.h&#62; int main() { int i,aa,aaa; &#8230; <a href="https://www.emblogic.com/blog/05/semaphore-4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ead    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.05.14.23.41.10;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@semaphore with semget,semctl,semop.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text<br />
@#include&lt;stdio.h&gt;<br />
#include&lt;linux/sem.h&gt;<br />
#include&lt;stdlib.h&gt;<br />
int main()<br />
{<br />
int i,aa,aaa;<br />
union semun u;<br />
u.val=1;<br />
struct sembuf sem1;<br />
sem1.sem_num=0;<br />
sem1.sem_op=-1;<br />
sem1.sem_flg=SEM_UNDO;</p>
<p>aa=semget((key_t)1234,1,IPC_CREAT|0777);<br />
if(aa&lt;0)<br />
{<br />
perror(&#8220;semget failure\n&#8221;);<br />
goto OUT;<br />
}<br />
aaa=semctl(aa,0,SETVAL,0);<br />
if(aaa&lt;0)<br />
{<br />
perror(&#8220;segctl failure\n&#8221;);<br />
goto OUT;<br />
}<br />
semop(aa,&amp;sem1,0);<br />
for(i=1;i&lt;=3;i++)<br />
{<br />
printf(&#8220;hello i m into critical section =%d\n&#8221;,getpid());<br />
sleep(2);<br />
printf(&#8221; i m into critical section =%d\n&#8221;,getpid());<br />
sleep(2);<br />
printf(&#8220;bye i m into critical section =%d\n&#8221;,getpid());</p>
<p>}</p>
<p>sem1.sem_num=0;<br />
sem1.sem_op=1;<br />
sem1.sem_flg=SEM_UNDO;<br />
semop(aa,&amp;sem1,0);<br />
return 0;<br />
OUT:<br />
return -1;<br />
}<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/semaphore-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>main role dhcp at server</title>
		<link>https://www.emblogic.com/blog/03/main-role-dhcp-at-server/</link>
		<comments>https://www.emblogic.com/blog/03/main-role-dhcp-at-server/#comments</comments>
		<pubDate>Thu, 27 Mar 2014 09:55:32 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9547</guid>
		<description><![CDATA[DHCP is an Internet Engineering Task Force (IETF) standard designed to reduce the administration burden and complexity of configuring hosts on a TCP/IP-based network, such as a private intranet. Using the DHCP Server service, the process of configuring TCP/IP on &#8230; <a href="https://www.emblogic.com/blog/03/main-role-dhcp-at-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>DHCP is an Internet Engineering Task Force (IETF) standard designed to reduce the administration burden and complexity of configuring hosts on a TCP/IP-based network, such as a private intranet. Using the DHCP Server service, the process of configuring TCP/IP on DHCP clients is automatic.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/main-role-dhcp-at-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about dhcp&#8230;&#8230;</title>
		<link>https://www.emblogic.com/blog/03/about-dhcp-2/</link>
		<comments>https://www.emblogic.com/blog/03/about-dhcp-2/#comments</comments>
		<pubDate>Thu, 27 Mar 2014 09:53:42 +0000</pubDate>
		<dc:creator><![CDATA[pardeepkakash]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9545</guid>
		<description><![CDATA[The Dynamic Host Configuration Protocol is used by computers for requesting Internet Protocol parameters, such as an IP address from a network server. The protocol operates based on the client-server model. DHCP is very common in all modern networks[1] ranging &#8230; <a href="https://www.emblogic.com/blog/03/about-dhcp-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div>
<p>The Dynamic Host Configuration Protocol is used by computers for requesting Internet Protocol parameters, such as an <a title="IP address" href="http://en.wikipedia.org/wiki/IP_address">IP address</a> from a network server. The protocol operates based on the <a title="Client-server model" href="http://en.wikipedia.org/wiki/Client-server_model">client-server model</a>. DHCP is very common in all modern networks<sup><a href="http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#cite_note-1">[1]</a></sup> ranging in size from <a title="Home network" href="http://en.wikipedia.org/wiki/Home_network">home networks</a> to large <a title="Campus network" href="http://en.wikipedia.org/wiki/Campus_network">campus networks</a> and regional <a title="Internet service provider" href="http://en.wikipedia.org/wiki/Internet_service_provider">Internet service provider</a> networks. Most residential network routers receive a globally unique IP address within the provider network. Within a local network, DHCP assigns a local IP address to devices connected to the local network.</p>
<p>When a computer or other networked device connects to a network, its DHCP client software in the operating system sends a <a title="Broadcasting (computing)" href="http://en.wikipedia.org/wiki/Broadcasting_%28computing%29">broadcast</a> query requesting necessary information. Any DHCP server on the network may service the request. The DHCP server manages a pool of IP addresses and information about client configuration parameters such as <a title="Default gateway" href="http://en.wikipedia.org/wiki/Default_gateway">default gateway</a>, <a title="Domain name" href="http://en.wikipedia.org/wiki/Domain_name">domain name</a>, the <a title="Name server" href="http://en.wikipedia.org/wiki/Name_server">name servers</a>, <a title="Time server" href="http://en.wikipedia.org/wiki/Time_server">time servers</a>. On receiving a request, the server may respond with specific information for each client, as previously configured by an administrator, or with a specific address and any other information valid for the entire network, and the time period for which the allocation (<em>lease</em>) is valid. A host typically queries for this information immediately after <a title="Booting" href="http://en.wikipedia.org/wiki/Booting">booting</a>, and periodically thereafter before the expiration of the information. When an assignment is refreshed by the client computer, it initially requests the same parameter values, but may be assigned a new address from the server, based on the assignment policies set by administrators.</p>
<p>On large networks that consist of multiple links, a single DHCP server may service the entire network when aided by DHCP relay agents located on the interconnecting routers. Such agents relay messages between DHCP clients and DHCP servers located on different subnets.</p>
<p>Depending on implementation, the DHCP server may have three methods of allocating IP-addresses:</p>
<ul>
<li><em>dynamic allocation</em>: A <a title="Network administrator" href="http://en.wikipedia.org/wiki/Network_administrator">network administrator</a> reserves a range of IP addresses for DHCP, and each client computer on the LAN is configured to request an IP address from the DHCP <a title="Server (computing)" href="http://en.wikipedia.org/wiki/Server_%28computing%29">server</a> during network initialization. The request-and-grant process uses a lease concept with a controllable time period, allowing the DHCP server to reclaim (and then reallocate) IP addresses that are not renewed.</li>
<li><em>automatic allocation</em>: The DHCP server permanently assigns an IP address to a requesting client from the range defined by the administrator. This is like dynamic allocation, but the DHCP server keeps a table of past IP address assignments, so that it can preferentially assign to a client the same IP address that the client previously had.</li>
<li><em>static allocation</em>: The DHCP server allocates an IP address based on a preconfigured mapping to each client’s <a title="MAC address" href="http://en.wikipedia.org/wiki/MAC_address">MAC address</a>. This feature is variously called <em>static DHCP assignment</em> by <a title="DD-WRT" href="http://en.wikipedia.org/wiki/DD-WRT">DD-WRT</a>, <em>fixed-address</em> by the dhcpd documentation, <em>address reservation</em> by Netgear, <em>DHCP reservation</em> or <em>static DHCP</em> by <a title="Cisco" href="http://en.wikipedia.org/wiki/Cisco">Cisco</a> and <a title="Linksys" href="http://en.wikipedia.org/wiki/Linksys">Linksys</a>, and <em>IP address reservation</em> or <em>MAC/IP address binding</em> by various other router manufacturers.</li>
</ul>
<p>DHCP is used for <a title="IPv4" href="http://en.wikipedia.org/wiki/IPv4">Internet Protocol version 4</a> (IPv4), as well as <a title="IPv6" href="http://en.wikipedia.org/wiki/IPv6">IPv6</a>. While both versions serve the same purpose, the details of the protocol for IPv4 and IPv6 are sufficiently different that they may be considered separate protocols.<sup><a href="http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#cite_note-2">[2]</a></sup> <a title="IPv6" href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> devices may alternatively use <a title="IPv6 stateless address autoconfiguration" href="http://en.wikipedia.org/wiki/IPv6_stateless_address_autoconfiguration">stateless address autoconfiguration</a>. IPv4 hosts may use <a title="Link-local addressing" href="http://en.wikipedia.org/wiki/Link-local_addressing">link-local addressing</a> to achieve limited local connectivity.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/about-dhcp-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
