<?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; linux</title>
	<atom:link href="https://www.emblogic.com/blog/tag/linux/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>What is Character Driver?</title>
		<link>https://www.emblogic.com/blog/02/what-is-character-driver/</link>
		<comments>https://www.emblogic.com/blog/02/what-is-character-driver/#comments</comments>
		<pubDate>Sun, 21 Feb 2016 12:10:16 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[char driver]]></category>
		<category><![CDATA[Character Device Driver]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13296</guid>
		<description><![CDATA[A character device driver is one that transfers data directly to and from a user process. This is the most common type of device driver and there are plenty of simple examples in the source tree. Character device drivers may &#8230; <a href="https://www.emblogic.com/blog/02/what-is-character-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">A character device driver is one that transfers data directly to and from a user process. </span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">This is the most common type of device driver and there are plenty of simple examples in the source tree.</span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">Character device drivers may transfer data between a user-level process and the device using any scheme other than the system buffer cache. </span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">Character drivers control devices such as :-</span></span></span></p>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">* network cards</span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">* terminal devices</span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">* printers</span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">* specialized devices such as robots</span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">* medical devices</span></span></span></p>
<p><span style="font-family: times new roman,times,serif"><span style="color: #333333"><span style="font-size: 14px">* retail sales devices.</span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/what-is-character-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ls &#8211; list command</title>
		<link>https://www.emblogic.com/blog/02/ls-list-command/</link>
		<comments>https://www.emblogic.com/blog/02/ls-list-command/#comments</comments>
		<pubDate>Wed, 10 Feb 2016 17:20:32 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[ll]]></category>
		<category><![CDATA[long list]]></category>
		<category><![CDATA[ls]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shell scripting]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13262</guid>
		<description><![CDATA[ls &#8211; list command ================= - ls means list directory content - Prototype : ls [OPTION] &#8230; [FILE] &#8230; - Exit status It returns 0 ,on success Returns 1 in case of minor problems (eg. cannot access subdirectory) returns 2 &#8230; <a href="https://www.emblogic.com/blog/02/ls-list-command/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ls &#8211; list command<br />
=================<br />
- ls means list directory content<br />
- Prototype :<br />
ls [OPTION] &#8230; [FILE] &#8230;<br />
- Exit status<br />
It returns 0 ,on success<br />
Returns 1 in case of minor problems (eg. cannot access subdirectory)<br />
returns 2 in case of serious trouble (eg. Cannot access command line argument)<br />
- For specific listing you can use *<br />
eg.1) For listing all files starting with a use :<br />
ls a*<br />
2) for listing all .c files use :<br />
ls *.c<br />
3) for listing all .c files starting with a use :<br />
ls a*.c<br />
- Some common options are :<br />
i) -a &#8211;all &#8211;&gt; Do not ignore enteries starting with .<br />
Use this to view swap or temporary files.<br />
ii) -l &#8211;&gt; long listing format<br />
iii) -r &#8211;) Reverse order sort (by name) and list<br />
iv) -s &#8211;size &#8211;&gt; Print allocated size of each file in blocks<br />
v) -S &#8211;&gt; Sort by file size<br />
vi) -t &#8211;&gt; Sort by modification time, newest first<br />
vii) -U &#8211;&gt; Do not sort; list enteries in directory order<br />
viii) -X &#8211;&gt; Sort alphabetically by entry extension.<br />
ix) -F &#8211;&gt; to distinguish files from directories (Puts / in directory and * with executable files)<br />
x) -R &#8211;&gt; It shows files that are contained in directory. It continued to dirrectory in a directory and so on.</p>
<p>- In fedora for long lsting use command :</p>
<p>ll</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/ls-list-command/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Common linux virtual directories</title>
		<link>https://www.emblogic.com/blog/02/common-linux-virtual-directories/</link>
		<comments>https://www.emblogic.com/blog/02/common-linux-virtual-directories/#comments</comments>
		<pubDate>Tue, 09 Feb 2016 15:00:57 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[/home]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[directories]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[virtual directories]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13258</guid>
		<description><![CDATA[Common Linux Virtual Directories ================================= Directory               Usage / Root                     of virtual directory. No files are placed here (normally) /bin         &#8230; <a href="https://www.emblogic.com/blog/02/common-linux-virtual-directories/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Common Linux Virtual Directories<br />
=================================<br />
Directory               Usage<br />
/ Root                     of virtual directory. No files are placed here (normally)<br />
/bin                         Binary directory.GNU user level utilities are stored<br />
/boot                       Boot directory.Boot files are stored here<br />
/dev                         device directory, where linux creates device nodes<br />
/etc                          system configuration files directory<br />
/home                      home directory, user directories are placed here<br />
/lib                          System &amp; application library files are stored here<br />
/media                   Common place for mount point of removable media<br />
/mnt                        mount directory, for removable devices<br />
/opt                         used to store optional software packages<br />
/root                       home directory of root user<br />
/sbin                      GNU admin level utilities are store here<br />
/tmp                       Temporary work files are created and destroyed<br />
/usr                        User installed softwares directory<br />
/var                         For frequently changing directory ,such as log files</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/common-linux-virtual-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Filesystem</title>
		<link>https://www.emblogic.com/blog/02/linux-filesystem/</link>
		<comments>https://www.emblogic.com/blog/02/linux-filesystem/#comments</comments>
		<pubDate>Tue, 09 Feb 2016 14:56:41 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[root]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13255</guid>
		<description><![CDATA[Linux Filesystem ================ - In windows, physical drive determines the pathname of the file. - Windows assigns a letter to each disk drive. - Each directory contains its own directory structure for accesing files stored in it. - For eg. &#8230; <a href="https://www.emblogic.com/blog/02/linux-filesystem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Linux Filesystem<br />
================<br />
- In windows, physical drive determines the pathname of the file.<br />
- Windows assigns a letter to each disk drive.<br />
- Each directory contains its own directory structure for accesing files stored in it.<br />
- For eg. in windows filepath is as:<br />
c:\Users\ankur\Documents\Lessons.doc</p>
<p>- Linux does not use drive letters in pathnames like windows.<br />
- Linux stores files within a single directory structure, called a virtual directory.<br />
- Virtual directory contains filepaths from all storage devices installed on PC, mergedinto a single directory.<br />
- There is a single base directory, called the root.<br />
- root drive contains core of virtual directory.<br />
- On root drive, Linux has special directories called mount points.<br />
-When we start a new shell prompt, your session starts in your home directory.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/linux-filesystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get help in Linux &#8211; Fedora</title>
		<link>https://www.emblogic.com/blog/02/how-to-get-help-in-linux-fedora/</link>
		<comments>https://www.emblogic.com/blog/02/how-to-get-help-in-linux-fedora/#comments</comments>
		<pubDate>Tue, 09 Feb 2016 14:54:58 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[help]]></category>
		<category><![CDATA[info]]></category>
		<category><![CDATA[info page]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[man]]></category>
		<category><![CDATA[man page]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13253</guid>
		<description><![CDATA[To get help in fedora ===================== To learn about any new command, function or utility in Fedora we can get help from it. It has 3 such commands :- i) man pages &#8211; These are manual pages . - It &#8230; <a href="https://www.emblogic.com/blog/02/how-to-get-help-in-linux-fedora/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>To get help in fedora<br />
=====================<br />
To learn about any new command, function or utility in Fedora we can get help from it.<br />
It has 3 such commands :-</p>
<p>i) man pages &#8211; These are manual pages .<br />
- It contains interface to online reference manuals<br />
- Press q to exit.<br />
- How to Use ( Command ) &#8211; man command_name<br />
- for all man pages of BASH shell, use<br />
man bash<br />
- It generally contains following information about command(command_name) :-<br />
* Name<br />
* Synopsis (Prototype)<br />
* Description (Options)<br />
* Author (author of command)<br />
* Reporting Bugs (Feedback emails/Website)<br />
* Copyright (copyright details)<br />
* See Also (for further reference of command)</p>
<p>ii) Info pages &#8211; Read info documents<br />
- It contains BASH manuals.<br />
- Press q to exit<br />
- How to Use (command) &#8211; info command_name<br />
- It contains information about :-<br />
* Prototype<br />
* Introduction<br />
* Options<br />
* Exit Status<br />
iii) help command<br />
- It gives basic help for using a command and its various options.<br />
- It gives output on Standard Output.<br />
- It do not require exit command.<br />
- How to Use (command) &#8211; help command_name<br />
- It contains following information about command (command_name) :-<br />
* Function of command<br />
* Options<br />
* Exit status</p>
<p>eg.<br />
man echo<br />
info echo<br />
help echo</p>
<p>- To check total no. of enteries in each of three<br />
I) type either of three (with space at end)<br />
II) Press tab button for 3-4 times.<br />
We will get the total number of possible options defined or list of them also.<br />
eg. (&lt;tab&gt; means Press tab button)<br />
man &lt;tab&gt;&lt;tab&gt;&lt;tab&gt;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/how-to-get-help-in-linux-fedora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to change default prompt in BASH shell</title>
		<link>https://www.emblogic.com/blog/02/how-to-change-default-prompt-in-bash-shell/</link>
		<comments>https://www.emblogic.com/blog/02/how-to-change-default-prompt-in-bash-shell/#comments</comments>
		<pubDate>Sun, 07 Feb 2016 15:46:40 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[change default prompt]]></category>
		<category><![CDATA[default prompt]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[PS1]]></category>
		<category><![CDATA[PS2]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shell scripting]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13238</guid>
		<description><![CDATA[To change default prompt :- ======================== - We can change default prompt by assigning the character to it. - Each character have a specific meaning. BASH Shell Prompt Characters :- Character Description \a Bell Character \d Date in format &#8220;Day &#8230; <a href="https://www.emblogic.com/blog/02/how-to-change-default-prompt-in-bash-shell/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>To change default prompt :-<br />
========================<br />
- We can change default prompt by assigning the character to it.<br />
- Each character have a specific meaning.</p>
<p>BASH Shell Prompt Characters :-<br />
Character Description<br />
\a Bell Character<br />
\d Date in format &#8220;Day Month Date&#8221;<br />
\e ASCII escape character<br />
\h Local hostname<br />
\H Fully qualified domain hostname<br />
\j Number of jobs currently managed by the shell<br />
\l Basename of the shell&#8217;s terminal device name<br />
\n ASCII newline character<br />
\r ASCII carriage return<br />
\s Name of the shell<br />
\t Current time in 24-hour HH:MM:SS format<br />
\T Current time in 12-hour HH:MM:SS format<br />
\@ Current time in 12-hour am/pm format<br />
\u Username of current user<br />
\v Version of BASH shell<br />
\V Release level of bash shell<br />
\w Current working directory<br />
\W Basename of current working directory<br />
\# Command number of this command<br />
\$ A dollar sign if normal user, #(Pound) for root user<br />
/nnn Character corresponding to value nnn<br />
\\ Backslash<br />
\[ Begins a control code sequence<br />
/] Ends a control code sequence</p>
<p>eg.<br />
[ankur@(none) ~]$ PS1 = &#8220;[\t][\u]$&#8221;<br />
[15:20:30][ankur]$</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/how-to-change-default-prompt-in-bash-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Command line Prompt &#8211; PS1, PS2</title>
		<link>https://www.emblogic.com/blog/02/command-line-prompt-ps1-ps2/</link>
		<comments>https://www.emblogic.com/blog/02/command-line-prompt-ps1-ps2/#comments</comments>
		<pubDate>Sun, 07 Feb 2016 15:44:42 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command line prompt]]></category>
		<category><![CDATA[environmental variables]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[PS1]]></category>
		<category><![CDATA[PS2]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shell scripting]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13236</guid>
		<description><![CDATA[Command line Prompt =================== Environmental variables that controls Command line Prompt PS1 : Controls the format of default command line prompt. PS2 : Controls the format of second-tier command line prompt. PS3 : Controls the format of tertiary command line &#8230; <a href="https://www.emblogic.com/blog/02/command-line-prompt-ps1-ps2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Command line Prompt<br />
===================<br />
Environmental variables that controls Command line Prompt<br />
PS1 : Controls the format of default command line prompt.<br />
PS2 : Controls the format of second-tier command line prompt.<br />
PS3 : Controls the format of tertiary command line prompt.</p>
<p>- Shell uses default PS1 prompt for initial data entry into shell.<br />
- If we enter a command that requires additional information, shell displays second-tier prompt specified by PS2 .<br />
- To display current settings for prompt use command :<br />
echo $PS1<br />
echo $PS2<br />
- PS3 is used only in shell scripts.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/command-line-prompt-ps1-ps2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Run Levels</title>
		<link>https://www.emblogic.com/blog/02/linux-run-levels/</link>
		<comments>https://www.emblogic.com/blog/02/linux-run-levels/#comments</comments>
		<pubDate>Tue, 02 Feb 2016 12:36:51 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[run level]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13216</guid>
		<description><![CDATA[Linux Run Levels ================ Run Level    Description 0                    Halt 1                     Single-User mode 2                    Multi-user mode, usually &#8230; <a href="https://www.emblogic.com/blog/02/linux-run-levels/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Linux Run Levels<br />
================<br />
Run Level    Description<br />
0                    Halt<br />
1                     Single-User mode<br />
2                    Multi-user mode, usually without networking support<br />
3                    Full multi-user mode with networking<br />
4                    Unused<br />
5                    Multiuser mode with networking and a graphical X window Session<br />
6                    Reboot</p>
<p>- To change run level use init command</p>
<p>init run_level<br />
- Most normal is run level 5 for graphical linux system.<br />
- Level 1 is used for troubleshooting or emergency purpose.<br />
- Most linux softwares start the network softwares at run level 3.<br />
- What aplications work at Run level is determined by system by RC script.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/linux-run-levels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boot process of linux</title>
		<link>https://www.emblogic.com/blog/02/boot-process-of-linux/</link>
		<comments>https://www.emblogic.com/blog/02/boot-process-of-linux/#comments</comments>
		<pubDate>Tue, 02 Feb 2016 12:27:09 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13214</guid>
		<description><![CDATA[The boot process of linux ========================= - After you turn on your Linux System, linux kernel loads into memory and runs. - Firstly, it runs the init process. - init program is usually located at /sbin/init. - init process has &#8230; <a href="https://www.emblogic.com/blog/02/boot-process-of-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The boot process of linux<br />
=========================<br />
- After you turn on your Linux System, linux kernel loads into memory and runs.<br />
- Firstly, it runs the init process.<br />
- init program is usually located at /sbin/init.<br />
- init process has PID 1.<br />
- The init process then starts all other processes.<br />
- The init process reads the /etc/inittab file during boot (This is outdated now).</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/boot-process-of-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sockets &#8211; Basics</title>
		<link>https://www.emblogic.com/blog/01/sockets-basics/</link>
		<comments>https://www.emblogic.com/blog/01/sockets-basics/#comments</comments>
		<pubDate>Sun, 31 Jan 2016 09:29:56 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[client-server]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13210</guid>
		<description><![CDATA[Sockets ======= A socket is a communication mechanism that allows client/server systems to be developed either locally,on a single machine, or across networks. - It is a communication mechanism - It allows client/server systems to developed either locally or across &#8230; <a href="https://www.emblogic.com/blog/01/sockets-basics/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Sockets<br />
=======<br />
A socket is a communication mechanism that allows client/server systems to be developed either locally,on a single machine, or across networks.<br />
- It is a communication mechanism<br />
- It allows client/server systems to developed either locally or across a network.<br />
- Socket is an extension of pipe<br />
- They make clear distinction between client and server.<br />
- Socket can be named or unnamed.<br />
- They make clear distinction between server and client.<br />
- In a socket, one side is client/server for read/write/both and other side is a network interface.</p>
<p>There are 6 tasks in a socket :-<br />
1. Create Socket.<br />
2. Give name to socket.<br />
3. Listen to socket for incoming connection.<br />
4. Coonect the client to server.<br />
5. Accept the request by server from client.<br />
6. Close the socket</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/sockets-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic linklist operations</title>
		<link>https://www.emblogic.com/blog/01/basic-linklist-operations/</link>
		<comments>https://www.emblogic.com/blog/01/basic-linklist-operations/#comments</comments>
		<pubDate>Sat, 16 Jan 2016 07:07:03 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[data structures]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[linklist]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[rcs]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13182</guid>
		<description><![CDATA[RCS file: header.h,v Working file: header.h head: 1.1 branch: locks: strict a: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1;    selected revisions: 1 description: stdio.h and stdlib.h are added. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1    locked by: a; date: 2015/07/02 &#8230; <a href="https://www.emblogic.com/blog/01/basic-linklist-operations/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
a: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;    selected revisions: 1<br />
description:<br />
stdio.h and stdlib.h are added.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1    locked by: a;<br />
date: 2015/07/02 08:03:30;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: prototypes.h,v<br />
Working file: prototypes.h<br />
head: 1.12<br />
branch:<br />
locks: strict<br />
a: 1.12<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 12;    selected revisions: 12<br />
description:<br />
struct node is defined.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12    locked by: a;<br />
date: 2015/07/02 13:26:00;  author: a;  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: 2015/07/02 12:33:04;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2015/07/02 12:06:18;  author: a;  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: 2015/07/02 11:53:38;  author: a;  state: Exp;  lines: +4 -2<br />
display_list() added.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2015/07/02 10:23:57;  author: a;  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: 2015/07/02 10:14:17;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/07/02 10:12:21;  author: a;  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: 2015/07/02 10:08:38;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/07/02 09:52:43;  author: a;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/07/02 09:25:49;  author: a;  state: Exp;  lines: +2 -2<br />
int i i.e position is added to insert_element().<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/07/02 08:43:09;  author: a;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/02 08:03:30;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: delete_menu.c,v<br />
Working file: delete_menu.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;    selected revisions: 1<br />
description:<br />
delete menu created.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1    locked by: root;<br />
date: 2015/07/08 06:45:44;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: display_list.c,v<br />
Working file: display_list.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;    selected revisions: 1<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/02 12:45:04;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: exit_list.c,v<br />
Working file: exit_list.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
a: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;    selected revisions: 2<br />
description:<br />
exit function created.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2    locked by: a;<br />
date: 2015/07/02 08:48:07;  author: a;  state: Exp;  lines: +2 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/02 08:38:15;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: insert_element.c,v<br />
Working file: insert_element.c<br />
head: 1.22<br />
branch:<br />
locks: strict<br />
a: 1.22<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 22;    selected revisions: 22<br />
description:<br />
insert_element() is created.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22    locked by: a;<br />
date: 2015/07/02 15:32:22;  author: a;  state: Exp;  lines: +10 -5<br />
Differentiate between first node and other nodes.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2015/07/02 13:38:04;  author: a;  state: Exp;  lines: +5 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2015/07/02 13:26:02;  author: a;  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: 2015/07/02 13:11:31;  author: a;  state: Exp;  lines: +3 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2015/07/02 13:09:32;  author: a;  state: Exp;  lines: +5 -4<br />
local is used .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2015/07/02 11:54:24;  author: a;  state: Exp;  lines: +1 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2015/07/02 10:24:00;  author: a;  state: Exp;  lines: +5 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2015/07/02 10:17:12;  author: a;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2015/07/02 10:08:41;  author: a;  state: Exp;  lines: +7 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2015/07/02 09:58:31;  author: a;  state: Exp;  lines: +2 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2015/07/02 09:41:45;  author: a;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2015/07/02 09:36:08;  author: a;  state: Exp;  lines: +5 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2015/07/02 09:26:44;  author: a;  state: Exp;  lines: +1 -1<br />
i is the position in link list.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2015/07/02 08:28:19;  author: a;  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: 2015/07/02 08:26:28;  author: a;  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: 2015/07/02 08:25:31;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/07/02 08:24:00;  author: a;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/07/02 08:18:27;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/07/02 08:16:51;  author: a;  state: Exp;  lines: +1 -2<br />
elment is corrected<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/07/02 08:14:33;  author: a;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/07/02 08:10:59;  author: a;  state: Exp;  lines: +7 -5<br />
Element is inserted.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/02 08:04:28;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: insert_end.c,v<br />
Working file: insert_end.c<br />
head: 1.8<br />
branch:<br />
locks: strict<br />
root: 1.8<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 8;    selected revisions: 8<br />
description:<br />
Element is inserted at end .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8    locked by: root;<br />
date: 2015/07/08 07:16:45;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2015/07/08 07:11:46;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/07/08 07:10:10;  author: root;  state: Exp;  lines: +3 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/07/08 07:08:11;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/07/08 07:07: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.3<br />
date: 2015/07/08 07: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.2<br />
date: 2015/07/08 06:49:24;  author: root;  state: Exp;  lines: +1 -0<br />
Macro is printed<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/08 06:46:19;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: insert_menu.c,v<br />
Working file: insert_menu.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;    selected revisions: 1<br />
description:<br />
Insert menu created.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1    locked by: root;<br />
date: 2015/07/08 06:45:31;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: insert_node.c,v<br />
Working file: insert_node.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 />
Insert node is now creating a random node temp only .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7    locked by: root;<br />
date: 2015/07/08 07:18:30;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/07/08 07:16: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.5<br />
date: 2015/07/08 07:10:09;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/07/08 06:59: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.3<br />
date: 2015/07/08 06:57:05;  author: root;  state: Exp;  lines: +1 -1<br />
Prototype is corrected.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/07/08 06:55:14;  author: root;  state: Exp;  lines: +27 -4<br />
Cases created and respective functions are called.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/08 06:45:52;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: linklist.c,v<br />
Working file: linklist.c<br />
head: 1.11<br />
branch:<br />
locks: strict<br />
a: 1.11<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 11;    selected revisions: 11<br />
description:<br />
Element is inserted<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11    locked by: a;<br />
date: 2015/07/02 15:26:31;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2015/07/02 15:25:39;  author: a;  state: Exp;  lines: +3 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2015/07/02 13:41:59;  author: a;  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: 2015/07/02 13:40:18;  author: a;  state: Exp;  lines: +8 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2015/07/02 12:23:58;  author: a;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/07/02 11:53:51;  author: a;  state: Exp;  lines: +6 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/07/02 09:48:46;  author: a;  state: Exp;  lines: +6 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/07/02 09:26:25;  author: a;  state: Exp;  lines: +2 -1<br />
position i.e i is added.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/07/02 08:43:11;  author: a;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/07/02 08:38:12;  author: a;  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: 2015/07/02 08:03:30;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: main_choice.c,v<br />
Working file: main_choice.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
a: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;    selected revisions: 2<br />
description:<br />
Chices are given.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2    locked by: a;<br />
date: 2015/07/02 11:53:57;  author: a;  state: Exp;  lines: +1 -1<br />
choice for display is added.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2015/07/02 08:03:54;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: perform.c,v<br />
Working file: perform.c<br />
head: 1.22<br />
branch:<br />
locks: strict<br />
a: 1.22<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 22;    selected revisions: 22<br />
description:<br />
perform() is created.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22    locked by: a;<br />
date: 2015/07/02 15:35:42;  author: a;  state: Exp;  lines: +1 -1<br />
node is now inserted in new.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2015/07/02 15:19:02;  author: a;  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: 2015/07/02 13:50:48;  author: a;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2015/07/02 13:35:40;  author: a;  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: 2015/07/02 13:34:54;  author: a;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2015/07/02 13:33:44;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2015/07/02 13:30:45;  author: a;  state: Exp;  lines: +1 -1<br />
start is replaced by new.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2015/07/02 13:26:03;  author: a;  state: Exp;  lines: +8 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2015/07/02 12:35:41;  author: a;  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: 2015/07/02 12:33:58;  author: a;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2015/07/02 11:54:26;  author: a;  state: Exp;  lines: +5 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2015/07/02 10:24:00;  author: a;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2015/07/02 10:08:42;  author: a;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2015/07/02 09:48:48;  author: a;  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: 2015/07/02 09:44:54;  author: a;  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: 2015/07/02 09:41:46;  author: a;  state: Exp;  lines: +6 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2015/07/02 09:36:09;  author: a;  state: Exp;  lines: +2 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2015/07/02 09:27:00;  author: a;  state: Exp;  lines: +2 -2<br />
i is added.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2015/07/02 08:43:11;  author: a;  state: Exp;  lines: +1 -2<br />
..<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2015/07/02 08:38:14;  author: a;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2015/07/02 08:24:02;  author: a;  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: 2015/07/02 08:05:00;  author: a;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/basic-linklist-operations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Send a signal -Using Kill command</title>
		<link>https://www.emblogic.com/blog/01/how-to-send-a-signal-using-kill-command/</link>
		<comments>https://www.emblogic.com/blog/01/how-to-send-a-signal-using-kill-command/#comments</comments>
		<pubDate>Fri, 15 Jan 2016 12:01:08 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Linux Internals and System Programming]]></category>
		<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[kill]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux system programming]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[sending signals]]></category>
		<category><![CDATA[signal]]></category>

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

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13173</guid>
		<description><![CDATA[Register a signal ================== - Program can handle a signal using signal library function signal(). - signal() is used to register the signal handler function with kernel on behalf of current process. - It is included in header :- #include&#60;header.h&#62; &#8230; <a href="https://www.emblogic.com/blog/01/how-to-register-a-signal/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Register a signal<br />
==================<br />
- Program can handle a signal using signal library function signal().<br />
- signal() is used to register the signal handler function with kernel on behalf of current process.<br />
- It is included in header :-<br />
#include&lt;header.h&gt;<br />
- Prototype of function is :-<br />
void* (signal(int signo,void(*func)(int)))(int);<br />
- signal() function takes 2 parameters, signo and func.<br />
- The signal to be caught or ignored is given as argument signo.<br />
- The function to be called when the specified signal is received is given as func.<br />
- The function must take a single int argument (the signal received) and has return type void.</p>
<p>- The signal() command can be used in 3 modes :-<br />
(i) Default mode (Terminate the process)<br />
SIG_DFL &#8211;&gt; is used in place of func.<br />
(ii) Ignore the signal<br />
SIG_IGN &#8211;&gt; is used in place of func.<br />
(iii) User defined mode<br />
User defined function is used in place of func.</p>
<p>- The signal command returns the function which is setup to handle the signal, SIG_DFL or SIG_IGN in 3rd, 1st and 2nd cases respectively.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/how-to-register-a-signal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>About Signals</title>
		<link>https://www.emblogic.com/blog/01/about-signals/</link>
		<comments>https://www.emblogic.com/blog/01/about-signals/#comments</comments>
		<pubDate>Fri, 15 Jan 2016 11:57:12 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Linux Internals and System Programming]]></category>
		<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[signals]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13171</guid>
		<description><![CDATA[Signals ======== - A signal is an event generated by UNIX/LINUX system in response to some condition. - On receipt of a signal, process may in turn take some action. - Signals are generated by some error conditions such as:- &#8230; <a href="https://www.emblogic.com/blog/01/about-signals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Signals<br />
========<br />
- A signal is an event generated by UNIX/LINUX system in response to some condition.<br />
- On receipt of a signal, process may in turn take some action.<br />
- Signals are generated by some error conditions such as:-<br />
* Memory Segment Violation<br />
* Floating Point Processor error<br />
* Illegal Instruction etc.<br />
- They are generated by shell and terminal handlers.<br />
- They cause interrupts.</p>
<p>- They can also be used to sent from one process to another as a way of passing information or modifying behaviour.</p>
<p>- As default, if a process receives any signal, process will be terminated immediately.<br />
- Usually a core dump file is created.</p>
<p>- The signals are defined by including header file signal.h<br />
- They all begn with &#8220;SIG&#8221;.<br />
- There are 64 signals in LINUX.<br />
- The can be listed using command :-<br />
kill -l<br />
- Some of the signals are :-</p>
<p>Signal Name       Description<br />
SIGABORT          Process Abort<br />
SIGALRM           Alarm Clock<br />
SIGFPE            Floating Point Exception<br />
SIGHUP            Hangup<br />
SIGILL            Illegal Instruction<br />
SIGINT            Terminal Interrupt<br />
SIGKILL           Kill (can&#8217;t be caught or ignored)<br />
SIGPIPE           Write on a pipe with no reader<br />
SIGQUIT           Terminal Quit<br />
SIGSEGV           Invalid memory segment access (Segmentation Fault)<br />
SIGTERM           Termination<br />
SIGUSR1           User-defined signal 1<br />
SIGUSR2           User-defined signal 2</p>
<p>SIGCHLD           Child process has stopped or exited<br />
SIGCONT           Continue exexuting, if stopped<br />
SIGSTOP           Stop Executing (Can&#8217;t be caught or ignored)<br />
SIGTSTP           Terminal stop signal<br />
SIGTTIN           Background process trying to read<br />
SIGTTOU           Background process trying to write</p>
<p>- SIGINT can be called using Ctrl-C<br />
- A signal has 3 steps:-<br />
1) raise<br />
2) catch<br />
3) ignore/handle</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/about-signals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing a Process Image</title>
		<link>https://www.emblogic.com/blog/01/replacing-a-process-image/</link>
		<comments>https://www.emblogic.com/blog/01/replacing-a-process-image/#comments</comments>
		<pubDate>Fri, 15 Jan 2016 10:40:34 +0000</pubDate>
		<dc:creator><![CDATA[Ankur Garg]]></dc:creator>
				<category><![CDATA[Linux Internals and System Programming]]></category>
		<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[c programming]]></category>
		<category><![CDATA[exec]]></category>
		<category><![CDATA[execl]]></category>
		<category><![CDATA[execv]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[process replacement]]></category>
		<category><![CDATA[Replacing a Process Image]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13167</guid>
		<description><![CDATA[Replacing a Process Image ========================= - The exec function replaces current process with a new process. - The path of new process is specified as argument to exec. - It is defined in header : #include&#60;unistd.h&#62; - Last argument of &#8230; <a href="https://www.emblogic.com/blog/01/replacing-a-process-image/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Replacing a Process Image<br />
=========================<br />
- The exec function replaces current process with a new process.<br />
- The path of new process is specified as argument to exec.<br />
- It is defined in header :<br />
#include&lt;unistd.h&gt;<br />
- Last argument of function should be NULL.<br />
- It has 6 types of functions, whose prototype are :-<br />
(i) Complete path is specified<br />
int execl(const char * path, const char * arg0,const char * arg1,&#8230;,NULL);<br />
(ii) If file is at one of default paths<br />
int execlp(const char * file, const char * arg0,const char * arg1,&#8230;,NULL);<br />
(iii) If arguments are given as an vector(array)<br />
int execv(const char *path,char *const argv[]);<br />
(iv) If arguments are given as an vector(array) and file is at one of default paths<br />
int execvp(const char* file, char *const argv[]);<br />
(v) int execle(const char *path, const char * arg0, const char * arg1,&#8230;,NULL, char *const envp[]);<br />
(vi) int execve(const char *path, char *const argv[],char *const envp[] );</p>
<p>- The suffix p means to search PATH environmental variable.</p>
<p>- If the exec is executed successfully the statements after it will not be executed.<br />
- It is because the current process is replaced.<br />
- The arguments given to exec are used by main() function of new process as command line argument.<br />
- If exec fails, it returns -1<br />
- The open file descriptors remain open after the exec command.<br />
- These file descriptors can be passed to exec as command and can be used by the replaced process to read/write from opened file.<br />
- The argument is passed to exec as character.<br />
- For this sprintf() is used.<br />
- And for getting the file descriptors back , atoi() or integer typecasting can be used on the arguments of main().</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/replacing-a-process-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
