<?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; raushan.wxy</title>
	<atom:link href="https://www.emblogic.com/blog/author/raushan-wxy/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>implement own driver</title>
		<link>https://www.emblogic.com/blog/06/implement-own-driver/</link>
		<comments>https://www.emblogic.com/blog/06/implement-own-driver/#comments</comments>
		<pubDate>Fri, 20 Jun 2014 12:26:46 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10579</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.06.20.12.16.30;    author root;    state Exp; branches; next    ; desc @own driver . @ 1.1 log @Initial revision @ text @#include&#8221;header.h&#8221; static int initialization_fun(void) { printk(KERN_INFO&#8221;hello kernel&#8221;); return &#8230; <a href="https://www.emblogic.com/blog/06/implement-own-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<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.20.12.16.30;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@own driver .<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text<br />
@#include&#8221;header.h&#8221;<br />
static int initialization_fun(void)<br />
{<br />
printk(KERN_INFO&#8221;hello kernel&#8221;);<br />
return 0;<br />
}<br />
static void cleanup_fun(void)<br />
{<br />
printk(KERN_INFO &#8220;BYE FOR NOW,I WILL BE BACK&#8221;);</p>
<p>}<br />
module_init(initialization_fun);<br />
module_exit(cleanup_fun);</p>
<p>@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/implement-own-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tcp/ip protocol project imlement using socket</title>
		<link>https://www.emblogic.com/blog/06/tcpip-protocol-project-imlement-using-socket/</link>
		<comments>https://www.emblogic.com/blog/06/tcpip-protocol-project-imlement-using-socket/#comments</comments>
		<pubDate>Tue, 17 Jun 2014 10:41:36 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10522</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.06.17.10.36.05;    author root;    state Exp; branches; next    ; desc @creat reqclient for socket. @ 1.1 log @Initial revision @head    1.1; access; symbols; locks root:1.1; strict; comment    @ &#8230; <a href="https://www.emblogic.com/blog/06/tcpip-protocol-project-imlement-using-socket/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<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.17.10.36.05;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@creat reqclient for socket.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.17.10.34.40;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@server for socket impl.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text</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.17.10.37.39;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@creat processing client for socket.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/tcpip-protocol-project-imlement-using-socket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>implement threads using single client program</title>
		<link>https://www.emblogic.com/blog/06/implement-threads-using-single-client-program/</link>
		<comments>https://www.emblogic.com/blog/06/implement-threads-using-single-client-program/#comments</comments>
		<pubDate>Fri, 13 Jun 2014 07:37:55 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10455</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.06.13.07.23.51;    author root;    state Exp; branches; next    ; desc @client of threads. @ 1.1 log @Initial revision @ texthead    1.1; access; symbols; locks root:1.1; strict; comment    @ &#8230; <a href="https://www.emblogic.com/blog/06/implement-threads-using-single-client-program/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<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.13.07.23.51;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@client of threads.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
texthead    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.13.07.25.23;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@server of threads.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
texthead    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.06.13.07.29.42;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@processing client of threads.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/implement-threads-using-single-client-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>program of threads and checking load of processor</title>
		<link>https://www.emblogic.com/blog/06/program-of-threads-and-checking-load-of-processor/</link>
		<comments>https://www.emblogic.com/blog/06/program-of-threads-and-checking-load-of-processor/#comments</comments>
		<pubDate>Sat, 07 Jun 2014 07:34:58 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10377</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.06.07.07.30.30;    author root;    state Exp; branches; next    ; desc @simple program of thread. @ 1.1 log @Initial revision @]]></description>
				<content:encoded><![CDATA[<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.07.07.30.30;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@simple program of thread.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/program-of-threads-and-checking-load-of-processor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>message queue impliment for one client</title>
		<link>https://www.emblogic.com/blog/05/message-queue-impliment-for-one-client/</link>
		<comments>https://www.emblogic.com/blog/05/message-queue-impliment-for-one-client/#comments</comments>
		<pubDate>Tue, 20 May 2014 09:18:13 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10156</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.05.20.09.09.51;    author root;    state Exp; branches; next    ; desc @message rcv for comm.. @ 1.1 log @Initial revision @ text head    1.1; access; symbols; locks root:1.1; strict; &#8230; <a href="https://www.emblogic.com/blog/05/message-queue-impliment-for-one-client/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.05.20.09.09.51;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@message rcv for comm..<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text</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.05.20.09.08.27;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@message queue impliment.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/message-queue-impliment-for-one-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>program for semaphore</title>
		<link>https://www.emblogic.com/blog/05/program-for-semaphore/</link>
		<comments>https://www.emblogic.com/blog/05/program-for-semaphore/#comments</comments>
		<pubDate>Sat, 17 May 2014 07:46:48 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10127</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.05.17.07.43.53;    author root;    state Exp; branches; next    ; desc @the program of semafore . @ 1.1 log @Initial revision @ text @#include&#60;stdio.h&#62; #include&#60;linux/sem.h&#62; #include&#60;stdlib.h&#62; int main() { &#8230; <a href="https://www.emblogic.com/blog/05/program-for-semaphore/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.05.17.07.43.53;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@the program of semafore .<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 />
struct sembuf sem1;<br />
sem1.sem_num=0;<br />
sem1.sem_op=-1;<br />
sem1.sem_flg=SEM_UNDO;<br />
union semun u;<br />
u.val=1;<br />
int i,ret,kk;<br />
kk=semget((key_t)123,1,IPC_CREAT|0777);<br />
if(kk&lt;0)<br />
{<br />
perror(&#8220;\nsemget failure&#8221;);<br />
goto OUT;<br />
}<br />
ret=semctl(kk,0,SETVAL,u);<br />
if(ret&lt;0)<br />
{<br />
perror(&#8220;\n semctl is failure&#8221;);<br />
goto OUT;<br />
}<br />
ret=semop(kk,&amp;sem1,1);<br />
for(i=1;i&lt;4;i++)<br />
{<br />
printf(&#8220;\n i am raushan:::=%d&#8221;,getpid());<br />
printf(&#8220;\n hi how are you:::=%d&#8221;,getpid());<br />
printf(&#8220;\n who are you:::=%d&#8221;,getpid());<br />
}<br />
sem1.sem_num=0;<br />
sem1.sem_op=1;<br />
sem1.sem_flg=SEM_UNDO;<br />
ret=semop(kk,&amp;sem1,1);<br />
return 0;<br />
OUT:<br />
return-1;<br />
}<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/program-for-semaphore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fifo server for three reqclient and three prosessing client program using three fifo</title>
		<link>https://www.emblogic.com/blog/05/fifo-server-for-three-reqclient-and-three-prosessing-client-program-using-three-fifo/</link>
		<comments>https://www.emblogic.com/blog/05/fifo-server-for-three-reqclient-and-three-prosessing-client-program-using-three-fifo/#comments</comments>
		<pubDate>Sat, 17 May 2014 07:38:29 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10125</guid>
		<description><![CDATA[head    1.2; access; symbols; locks root:1.2; strict; comment    @ * @; 1.2 date    2014.05.15.11.19.59;    author root;    state Exp; branches; next    1.1; 1.1 date    2014.05.14.09.42.00;    author root;    state Exp; branches; next    ; desc @server iof fifo is. @ 1.2 log @*** &#8230; <a href="https://www.emblogic.com/blog/05/fifo-server-for-three-reqclient-and-three-prosessing-client-program-using-three-fifo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.2;<br />
access;<br />
symbols;<br />
locks<br />
root:1.2; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2014.05.15.11.19.59;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.05.14.09.42.00;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@server iof fifo is.<br />
@</p>
<p>1.2<br />
log<br />
@*** empty log message ***<br />
@<br />
text<br />
@#include&#8221;header.h&#8221;<br />
int main()<br />
{</p>
<p>struct data data1;<br />
int len,len1,ret,ret1,count,mul,fd,fd1,fd2,fd3,result;<br />
ret=access(&#8220;raushan&#8221;,F_OK);<br />
if(ret==-1)<br />
{<br />
ret=mkfifo(&#8220;raushan&#8221;,777);<br />
}<br />
fd=open(&#8220;raushan&#8221;,O_RDONLY);<br />
if(fd&lt;0)<br />
{<br />
perror(&#8220;\n open is failure&#8221;);<br />
goto OUT;<br />
}<br />
len=sizeof(struct data);<br />
count=read(fd,&amp;data1,len);<br />
printf(&#8220;\n bytes is %d %d %d %c&#8221;,count,data1.a,data1.b,data1.opr);<br />
ret=access(&#8220;raushan1&#8243;,F_OK);<br />
if(ret==-1)<br />
{<br />
ret=mkfifo(&#8220;raushan1&#8243;,777);</p>
<p>}<br />
fd1=open(&#8220;raushan1&#8243;,O_WRONLY);<br />
if(fd1&lt;0)<br />
{<br />
perror(&#8220;\n open is failure&#8221;);<br />
goto OUT;<br />
}<br />
len1=sizeof(struct data);<br />
count=write(fd1,&amp;data1,len1);<br />
printf(&#8220;\n bytes is %d&#8221;,count);<br />
fd1=open(&#8220;raushan1&#8243;,O_RDONLY);<br />
len=sizeof(result);<br />
count=read(fd1,&amp;result,len);<br />
printf(&#8220;\n result=%d&#8221;,result);<br />
close(fd1);<br />
fd=open(&#8220;raushan&#8221;,O_WRONLY);<br />
len=sizeof(result);<br />
count=write(fd,&amp;result,len);<br />
printf(&#8220;\n result=%d&#8221;,result);</p>
<p>ret=access(&#8220;raushan2&#8243;,F_OK);<br />
if(ret==-1)<br />
{<br />
ret=mkfifo(&#8220;raushan2&#8243;,777);<br />
}<br />
fd2=open(&#8220;raushan2&#8243;,O_RDONLY);<br />
if(fd2&lt;0)<br />
{<br />
perror(&#8220;\n open is failure&#8221;);<br />
goto OUT;<br />
}<br />
len=sizeof(struct data);<br />
count=read(fd2,&amp;data1,len);<br />
printf(&#8220;\n bytes is %d %d %d %c&#8221;,count,data1.a,data1.b,data1.opr);<br />
ret=access(&#8220;raushan3&#8243;,F_OK);<br />
if(ret==-1)<br />
{<br />
ret=mkfifo(&#8220;raushan3&#8243;,777);</p>
<p>}<br />
fd3=open(&#8220;raushan3&#8243;,O_WRONLY);<br />
if(fd3&lt;0)<br />
{<br />
perror(&#8220;\n open is failure&#8221;);<br />
goto OUT;<br />
}<br />
len1=sizeof(struct data);<br />
count=write(fd3,&amp;data1,len1);<br />
printf(&#8220;\n bytes is %d&#8221;,count);<br />
fd3=open(&#8220;raushan3&#8243;,O_RDONLY);<br />
len=sizeof(result);<br />
count=read(fd3,&amp;result,len);<br />
printf(&#8220;\n result=%d&#8221;,result);<br />
close(fd3);<br />
fd2=open(&#8220;raushan2&#8243;,O_WRONLY);<br />
len=sizeof(result);<br />
count=write(fd2,&amp;result,len);<br />
printf(&#8220;written result is %d\n&#8221;,result);<br />
return 0;<br />
OUT:<br />
return-1;</p>
<p>}<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text<br />
@d6 1<br />
a6 1<br />
int len,len1,ret,count,fd,fd1,result;<br />
d24 2<br />
a25 1<br />
ret=mkfifo(&#8220;raushan1&#8243;,777);<br />
d40 1<br />
d46 20<br />
d67 19<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/fifo-server-for-three-reqclient-and-three-prosessing-client-program-using-three-fifo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about fifo</title>
		<link>https://www.emblogic.com/blog/05/about-fifo/</link>
		<comments>https://www.emblogic.com/blog/05/about-fifo/#comments</comments>
		<pubDate>Mon, 12 May 2014 08:37:35 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10036</guid>
		<description><![CDATA[Definition: A FIFO is similar to a pipe. A FIFO (First In First Out) is a one-way flow of data. FIFOs have a name, so unrelated processes can share the FIFO. FIFO is a named pipe. This is the main &#8230; <a href="https://www.emblogic.com/blog/05/about-fifo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Definition:<br />
A FIFO is similar to a pipe. A FIFO (First In First Out) is a one-way flow of data. FIFOs have a name, so<br />
unrelated processes can share the FIFO. FIFO is a named pipe. This is the main difference between pipes<br />
and FIFOs.<br />
Creat: A FIFO is created by the mkfifo function:<br />
#include &lt;sys/types.h&gt;<br />
#include &lt;sys/stat.h&gt;<br />
int mkfifo(const char *pathname, mode_t mode);<br />
pathname – a UNIX pathname (path and filename). The name of the FIFO<br />
mode – the file permission bits.<br />
FIFO can also be created by the mknod system call,<br />
e.g., mknod(“fifo1”, S_IFIFO|0666, 0) is same as mkfifo(“fifo1”, 0666).<br />
Open: mkfifo tries to create a new FIFO. If the FIFO already exists, then an EEXIST error is returned. To<br />
open an existing FIFO, use open(), fopen() or freopen()<br />
Close: to close an open FIFO, use close(). To delete a created FIFO, use unlink().<br />
Properties: ( Some of them are also applicable to PIPES)<br />
1) After a FIFO is created, it can be opened for read or write.<br />
2) Normally, opening a FIFO for read or write, it blocks until another process opens it for write or read.<br />
3) A read gets as much data as it requests or as much data as the FIFO has, whichever is less.<br />
4) A write to a FIFO is atomic, as long as the write does not exceed the capacity of the FIFO. The<br />
capacity is at least 4k1.<br />
1<br />
Why?<br />
(1)The main operations (system calls) on PIPE or FIFO are write(&#8230;,length) and read(&#8230;,length).<br />
(2)The length of write() or read() should not exceed 4k if we want the code portable among different unix systems.<br />
(3) That is, all systems should guarantee write(&#8230;,length) or read(&#8230;,length) correctly executable when length &lt;= 4k.<br />
(4) Accordingly, the capacity of PIPE/FIFO should be at least 4k.<br />
(5) Statements 1 and 2 are excerpted from textbooks.<br />
5) One step further :How to verify the minimum capacity of a FIFO ? I have verified that the<br />
capacity of a PIPE or a FIFO on my Unix System is 9k.<br />
6) Blocked if read from an empty FIFO, or write to a full FIFO.<br />
7) The O_NDELAY flag or O_NONBLOCK flag can be set for FIFO to affect the behavior of various<br />
operations. This prevents accesses to the FIFO from blocking. See the Table below.<br />
Example: how to set the flags?<br />
writefd=open(FIFO1, O_WRONLY | O_NONBLOCK, 0);</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/about-fifo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>comm. throu pipeb/w two process</title>
		<link>https://www.emblogic.com/blog/05/comm-throu-pipebw-two-process/</link>
		<comments>https://www.emblogic.com/blog/05/comm-throu-pipebw-two-process/#comments</comments>
		<pubDate>Mon, 12 May 2014 08:09:15 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10019</guid>
		<description><![CDATA[access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.05.10.05.20.35;    author root;    state Exp; branches; next    ; desc @req client for pipe. @ 1.1 log @In server head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; &#8230; <a href="https://www.emblogic.com/blog/05/comm-throu-pipebw-two-process/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.05.10.05.20.35;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@req client for pipe.<br />
@</p>
<p>1.1<br />
log<br />
@In</p>
<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.05.10.05.18.35;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@server for ipc<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text</p>
<p>proc.client</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.05.10.05.17.01;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@processing client .<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/comm-throu-pipebw-two-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>program to print * using while loop in shell scripting</title>
		<link>https://www.emblogic.com/blog/04/program-to-print-using-while-loop-in-shell-scripting/</link>
		<comments>https://www.emblogic.com/blog/04/program-to-print-using-while-loop-in-shell-scripting/#comments</comments>
		<pubDate>Sat, 19 Apr 2014 06:54:14 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9848</guid>
		<description><![CDATA[1 head    1.1; 2 access; 3 symbols; 4 locks 5         root:1.1; strict; 6 comment @# @; 7 8 9 1.1 10 date    2014.04.19.12.26.46;    author root;    state Exp; 11 branches; 12 next    ; 13 14 15 desc 16 @to print * &#8230; <a href="https://www.emblogic.com/blog/04/program-to-print-using-while-loop-in-shell-scripting/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>1 head    1.1;<br />
2 access;<br />
3 symbols;<br />
4 locks<br />
5         root:1.1; strict;<br />
6 comment @# @;<br />
7<br />
8<br />
9 1.1<br />
10 date    2014.04.19.12.26.46;    author root;    state Exp;<br />
11 branches;<br />
12 next    ;<br />
13<br />
14<br />
15 desc<br />
16 @to print * using while loop in shells scripting .<br />
17 @<br />
18<br />
19<br />
20 1.1<br />
21 log<br />
22 @Initial revision<br />
23 @<br />
&#8211; INSERT &#8211;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/program-to-print-using-while-loop-in-shell-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>push and pop program implement  in stack</title>
		<link>https://www.emblogic.com/blog/04/push-and-pop-program-implement-in-stack/</link>
		<comments>https://www.emblogic.com/blog/04/push-and-pop-program-implement-in-stack/#comments</comments>
		<pubDate>Tue, 01 Apr 2014 11:44:57 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9745</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.04.01.11.46.19;    author root;    state Exp; branches; next    ; desc @push and pop in stack . @ 1.1 log @Initial revision @ text @#include&#60;stdio.h&#62; #include&#60;stdlib.h&#62; #define MAX 5 &#8230; <a href="https://www.emblogic.com/blog/04/push-and-pop-program-implement-in-stack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.04.01.11.46.19;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@push and pop in stack .<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text<br />
@#include&lt;stdio.h&gt;<br />
#include&lt;stdlib.h&gt;<br />
#define MAX 5<br />
int push(void **,int *);<br />
int pop(void **,int *);<br />
void display(void **,int *);<br />
int main()<br />
{<br />
void *astack;<br />
int atop=-1;</p>
<p>int ch;<br />
do<br />
{<br />
printf(&#8220;\n1:push&#8221;);<br />
printf(&#8220;\n2:pop&#8221;);<br />
printf(&#8220;\n3:display&#8221;);<br />
printf(&#8220;\n enter the choice&#8221;);<br />
scanf(&#8220;%d&#8221;,&amp;ch);<br />
switch(ch)<br />
{<br />
case 1:push(&amp;astack,&amp;atop);<br />
break;<br />
case 2:pop(&amp;astack,&amp;atop);<br />
break;<br />
case 3:display(&amp;astack,&amp;atop);<br />
break;<br />
default:printf(&#8220;\nwrong choice&#8221;);<br />
break;</p>
<p>}<br />
}while(ch!=4);<br />
return 0;<br />
}<br />
int push(void **astack,int *atop)<br />
{<br />
static char ch=1;<br />
if(*atop&gt;=MAX-1)<br />
{<br />
printf(&#8220;\n overflow&#8221;);<br />
return-1;<br />
}<br />
if(*atop==-1)<br />
{<br />
*astack= (char*)malloc(1);<br />
(*atop)++;<br />
*(char*)(*astack+*atop)=ch;<br />
ch++;<br />
return -1;<br />
}<br />
*astack=realloc(*astack,(*atop+2));<br />
(*atop)++;<br />
*(char*)(*astack+*atop)=ch;<br />
ch++;<br />
}<br />
int pop(void **astack,int *atop)<br />
{<br />
if(*atop==-1)<br />
{<br />
printf(&#8220;stack underflow\n&#8221;);<br />
}<br />
printf(&#8220;\n %d element %d delete&#8221;,*atop,*(char*)(*astack+*atop));<br />
(*atop)&#8211;;</p>
<p>}<br />
void display(void **astack,int *atop)<br />
{<br />
int i=0;<br />
for(i=(*atop);i&gt;=0;i&#8211;)<br />
{<br />
printf(&#8220;\nstack at %d is %d\n&#8221;,i,*(char*)(*astack+i));<br />
}<br />
}<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/push-and-pop-program-implement-in-stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C File I/O</title>
		<link>https://www.emblogic.com/blog/03/c-file-io-2/</link>
		<comments>https://www.emblogic.com/blog/03/c-file-io-2/#comments</comments>
		<pubDate>Wed, 26 Mar 2014 16:08:46 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9514</guid>
		<description><![CDATA[FILE * For C File I/O you need to use a FILE pointer, which will let the program keep track of the file being accessed. (You can think of it as the memory address of the file or the location &#8230; <a href="https://www.emblogic.com/blog/03/c-file-io-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>FILE *</p>
<p>For C File I/O you need to use a FILE pointer, which will let the program keep track of the file being accessed. (You can think of it as the memory address of the file or the location of the file).</p>
<p>For example:<br />
FILE *fp;</p>
<p>fopen</p>
<p>To open a file you need to use the fopen function, which returns a FILE pointer. Once you&#8217;ve opened a file, you can use the FILE pointer to let the compiler perform input and output functions on the file.<br />
FILE *fopen(const char *filename, const char *mode);<br />
In the filename, if you use a string literal as the argument, you need to remember to use double backslashes rather than a single backslash as you otherwise risk an escape character such as \t. Using double backslashes \\ escapes the \ key, so the string works as it is expected.</p>
<p>fopen modes</p>
<p>The allowed modes for fopen are as follows:<br />
r &#8211; open for reading<br />
w &#8211; open for writing (file need not exist)<br />
a &#8211; open for appending (file need not exist)<br />
r+ &#8211; open for reading and writing, start at beginning<br />
w+ &#8211; open for reading and writing (overwrite file)<br />
a+ &#8211; open for reading and writing (append if file exists)<br />
Note that it&#8217;s possible for fopen to fail even if your program is perfectly correct: you might try to open a file specified by the user, and that file might not exist (or it might be write-protected). In those cases, fopen will return 0, the NULL pointer.</p>
<p>Here&#8217;s a simple example of using fopen:</p>
<p>FILE *fp;<br />
fp=fopen(&#8220;c:\\test.txt&#8221;, &#8220;r&#8221;);<br />
This code will open test.txt for reading in text mode. To open a file in a binary mode you must add a b to the end of the mode string; for example, &#8220;rb&#8221; (for the reading and writing modes, you can add the b either after the plus sign &#8211; &#8220;r+b&#8221; &#8211; or before &#8211; &#8220;rb+&#8221;)</p>
<p>fclose</p>
<p>When you&#8217;re done working with a file, you should close it using the function<br />
int fclose(FILE *a_file);<br />
fclose returns zero if the file is closed successfully.</p>
<p>An example of fclose is<br />
fclose(fp);<br />
Reading and writing with fprintf, fscanf fputc, and fgetc</p>
<p>To work with text input and output, you use fprintf and fscanf, both of which are similar to their friends printf and scanf except that you must pass the FILE pointer as first argument. For example:<br />
FILE *fp;<br />
fp=fopen(&#8220;c:\\test.txt&#8221;, &#8220;w&#8221;);<br />
fprintf(fp, &#8220;Testing&#8230;\n&#8221;);<br />
It is also possible to read (or write) a single character at a time&#8211;this can be useful if you wish to perform character-by-character input (for instance, if you need to keep track of every piece of punctuation in a file it would make more sense to read in a single character than to read in a string at a time.) The fgetc function, which takes a file pointer, and returns an int, will let you read a single character from a file:<br />
int fgetc (FILE *fp);<br />
Notice that fgetc returns an int. What this actually means is that when it reads a normal character in the file, it will return a value suitable for storing in an unsigned char (basically, a number in the range 0 to 255). On the other hand, when you&#8217;re at the very end of the file, you can&#8217;t get a character value&#8211;in this case, fgetc will return &#8220;EOF&#8221;, which is a constant that indicates that you&#8217;ve reached the end of the file. To see a full example using fgetc in practice, take a look at the example here.</p>
<p>The fputc function allows you to write a character at a time&#8211;you might find this useful if you wanted to copy a file character by character. It looks like this:<br />
int fputc( int c, FILE *fp );<br />
Note that the first argument should be in the range of an unsigned char so that it is a valid character. The second argument is the file to write to. On success, fputc will return the value c, and on failure, it will return EOF.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/c-file-io-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about RCS</title>
		<link>https://www.emblogic.com/blog/03/about-rcs-3/</link>
		<comments>https://www.emblogic.com/blog/03/about-rcs-3/#comments</comments>
		<pubDate>Tue, 25 Mar 2014 15:47:50 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9454</guid>
		<description><![CDATA[RCS (revision control system) is a project management tool. RCS uses a number of commands to manage source file. It works by tracking source file as its changed by maintaining a single file with list of changes in sufficient detail &#8230; <a href="https://www.emblogic.com/blog/03/about-rcs-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS (revision control system) is a project management tool. RCS uses a number of commands to manage source file. It works by tracking source file as its changed by maintaining a single file with list of changes in sufficient detail to recreate the previous version. It also allows you to store comment with every change , which can be very useful to look back in the history of changes that has made to the files. To RCS a file following commands are used.</p>
<p>1.   rcs -i filename</p>
<p>this creates a rcs file with name filenamec,v.</p>
<p>2. ci filename</p>
<p>3 . co -l filename</p>
<p>this locks the previous version of file and allow you to do further changes into it.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/about-rcs-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>create linklist and display the data</title>
		<link>https://www.emblogic.com/blog/03/create-linklist-and-display-the-data/</link>
		<comments>https://www.emblogic.com/blog/03/create-linklist-and-display-the-data/#comments</comments>
		<pubDate>Tue, 25 Mar 2014 06:58:57 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9328</guid>
		<description><![CDATA[head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2014.03.23.22.24.26;    author root;    state Exp; branches; next    ; desc @create linklist . @ 1.1 log @Initial revision @ text @#include&#60;stdio.h&#62; #include&#60;stdlib.h&#62; #include&#60;string.h&#62; struct node { int roll; &#8230; <a href="https://www.emblogic.com/blog/03/create-linklist-and-display-the-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.03.23.22.24.26;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@create linklist .<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text<br />
@#include&lt;stdio.h&gt;<br />
#include&lt;stdlib.h&gt;<br />
#include&lt;string.h&gt;<br />
struct node<br />
{<br />
int roll;<br />
char name[20];<br />
struct node *next;<br />
};<br />
void creat_node(struct node * temp)<br />
{<br />
struct node *start;<br />
temp-&gt;next=malloc(sizeof(struct node));<br />
temp=temp-&gt;next;<br />
printf(&#8220;\nentrer the roll&#8221;);<br />
scanf(&#8220;%d&#8221;,&amp;temp-&gt;roll);<br />
printf(&#8220;enter the name \n&#8221;);<br />
scanf(&#8220;%s&#8221;,temp-&gt;name);<br />
temp-&gt;next=NULL;</p>
<p>}<br />
void display_node(struct node *temp)<br />
{<br />
while(temp!=NULL)<br />
{<br />
printf(&#8220;roll is %d\n&#8221;,temp-&gt;roll);<br />
printf(&#8220;name is %s\n&#8221;,temp-&gt;name);<br />
temp=temp-&gt;next;<br />
}<br />
}<br />
int main()<br />
{<br />
int i,n;</p>
<p>struct node *start,*temp;<br />
start=malloc(sizeof(struct node));<br />
temp=start;<br />
printf(&#8220;\nentrer the roll&#8221;);<br />
scanf(&#8220;%d&#8221;,&amp;temp-&gt;roll);<br />
printf(&#8220;enter the name \n&#8221;);<br />
scanf(&#8220;%s&#8221;,temp-&gt;name);<br />
printf(&#8220;enter the number of no. of node\n&#8221;);<br />
scanf(&#8220;%d&#8221;,&amp;n);<br />
temp-&gt;next=NULL;<br />
creat_node(temp);</p>
<p>for(i=0;i&lt;n;i++)<br />
{<br />
creat_node(temp);<br />
temp=temp-&gt;next;<br />
}</p>
<p>display_node(start);<br />
{<br />
display_node(start);<br />
}</p>
<p>}<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/create-linklist-and-display-the-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>enter any string and compressed it with the help of masterarray</title>
		<link>https://www.emblogic.com/blog/03/enter-any-string-and-compressed-it-with-the-help-of-masterarray/</link>
		<comments>https://www.emblogic.com/blog/03/enter-any-string-and-compressed-it-with-the-help-of-masterarray/#comments</comments>
		<pubDate>Tue, 25 Mar 2014 06:22:00 +0000</pubDate>
		<dc:creator><![CDATA[raushan.wxy]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9326</guid>
		<description><![CDATA[head    1.1; access; symbols; locks; strict; comment    @ * @; 1.1 date    2014.03.23.21.53.35;    author root;    state Exp; branches; next    ; desc @master array with compression @ 1.1 log @Initial revision @ text @#include&#60;stdio.h&#62; #include&#60;string.h&#62; #include&#60;fcntl.h&#62; int main() { int i=0,j,len,maslen=1,fd,ret; &#8230; <a href="https://www.emblogic.com/blog/03/enter-any-string-and-compressed-it-with-the-help-of-masterarray/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.03.23.21.53.35;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@master array with compression<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision<br />
@<br />
text<br />
@#include&lt;stdio.h&gt;<br />
#include&lt;string.h&gt;<br />
#include&lt;fcntl.h&gt;<br />
int main()<br />
{<br />
int i=0,j,len,maslen=1,fd,ret;<br />
char arr[100]={0};<br />
char masterarr[25]={0};<br />
fd=open(&#8220;add.c&#8221;,O_RDONLY);<br />
if(fd&lt;0)<br />
{<br />
perror(&#8220;open&#8221;);<br />
goto OUT;<br />
}<br />
printf(&#8220;fd=%d\n&#8221;,fd);</p>
<p>ret=read(fd,&amp;arr[i],1);<br />
for(i=1;ret&gt;0;i++)<br />
{<br />
ret=read(fd,&amp;arr[i],1);<br />
printf(&#8220;\nret=%d,data is %c\n&#8221;,ret,arr[i]);<br />
}</p>
<p>len=strlen(arr);<br />
unsigned int ch1,ch2,comp,fd1;<br />
for(i=0;i&lt;len;i++)<br />
{<br />
for(j=0;j&lt;maslen;j++)<br />
{<br />
if(j+1==maslen)<br />
{<br />
masterarr[j]=arr[i];<br />
maslen++;<br />
break;<br />
}<br />
else<br />
{<br />
if(masterarr[j]==arr[i])<br />
break;<br />
}<br />
}<br />
}<br />
printf(&#8220;masterarr=%s\n&#8221;,masterarr);<br />
fd1=open(&#8220;compress&#8221;,O_CREAT|O_RDWR,777);<br />
if(fd&lt;0)<br />
{<br />
perror(&#8220;open&#8221;);<br />
goto OUT;<br />
}</p>
<p>for(i=0;i&lt;len;i++)<br />
{<br />
for(j=0;j&lt;maslen;j++)<br />
{<br />
if(masterarr[j]==arr[i])<br />
{<br />
ch1=j;<br />
break;<br />
}<br />
}<br />
i++;<br />
for(j=0;j&lt;maslen;j++)<br />
{<br />
if(masterarr[j]==arr[i])<br />
{<br />
ch2=j;<br />
break;<br />
}<br />
}<br />
printf(&#8220;value in ch1 %d\n and ch2 %d\n&#8221;,ch1,ch2);</p>
<p>ch2=ch2&lt;&lt;4;<br />
comp=ch1|ch2;<br />
printf(&#8220;comp=%d&#8221;,comp);<br />
write(fd1,&amp;comp,1);<br />
}<br />
return 0;<br />
OUT:<br />
return-1;<br />
}</p>
<p>@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/enter-any-string-and-compressed-it-with-the-help-of-masterarray/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
