<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Pradeepkumar.org</title>
	
	<link>http://www.pradeepkumar.org</link>
	<description>Know thy all....</description>
	<lastBuildDate>Fri, 18 May 2012 10:18:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Pradeepkumarorg" /><feedburner:info uri="pradeepkumarorg" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://creativecommons.org/licenses/by/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>Pradeepkumarorg</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Wi-Fi access for Linux Operating System</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/SQDjgKaSzWg/wi-fi-access-for-linux-operating-system.html</link>
		<comments>http://www.pradeepkumar.org/2012/05/wi-fi-access-for-linux-operating-system.html#comments</comments>
		<pubDate>Fri, 18 May 2012 04:54:00 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=304</guid>
		<description><![CDATA[ If you are working in Windows Operating System (XP or Vista or 7) and your company provided you the Wi-fi internet access in windows only and you wanted it to configure for your Linux OS (Fedora or Ubuntu, etc), then here are the list of steps Download wireless key view software from http://www.nirsoft.net/utils/wireless_key.html&#160; Just run the software, [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/70WqCPmD74OXQAa404o-pA3ZqnM/0/da"><img src="http://feedads.g.doubleclick.net/~a/70WqCPmD74OXQAa404o-pA3ZqnM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/70WqCPmD74OXQAa404o-pA3ZqnM/1/da"><img src="http://feedads.g.doubleclick.net/~a/70WqCPmD74OXQAa404o-pA3ZqnM/1/di" border="0" ismap="true"></img></a></p><!-- AdSense Now! V3.07 -->
<!-- Post[count: 3] -->
<div class="adsense adsense-leadin" style="text-align:center;margin: 12px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-6266661353943337";
/* 728x15, created 7/2/11 */
google_ad_slot = "2299123945";
google_ad_width = 728;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p>If you are working in Windows Operating System (XP or Vista or 7) and your company provided you the Wi-fi internet access in windows only and you wanted it to configure for your Linux OS (Fedora or Ubuntu, etc), then here are the list of steps</p>
<ul>
<li>Download <strong><a href="http://www.nirsoft.net/utils/wireless_key.html">wireless key view</a></strong> software from <a title="http://www.nirsoft.net/utils/wireless_key.html" href="http://www.nirsoft.net/utils/wireless_key.html">http://www.nirsoft.net/utils/wireless_key.html</a>&#160;</li>
<li>Just run the software, it will give the list of Wi-fi stored in your Operating System along with its Key(Hex) and Key (ASCII) (look at the following pic)</li>
</ul>
<ul>
<li>the above picture shows the Type of key, SSID Name, Hexadecimal Key and ASCII Key, You can copy the ASCII Key and Hexadecimal Key </li>
<li>Go to your Linux OS and click the wireless network, Select the SSID and paste either the ASCII Key or HEX (Key), since the MAC address is the hardware address, the OS in your Computer will accept the key what you got through windows.</li>
<li>You need not go to your administrator to configure your Wi-Fi access password for Linux (As they will not configure it, because Linux OS reveals the Wifi Access Password )</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=SQDjgKaSzWg:UNv0_Kg16LY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=SQDjgKaSzWg:UNv0_Kg16LY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=SQDjgKaSzWg:UNv0_Kg16LY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=SQDjgKaSzWg:UNv0_Kg16LY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=SQDjgKaSzWg:UNv0_Kg16LY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/SQDjgKaSzWg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/05/wi-fi-access-for-linux-operating-system.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/05/wi-fi-access-for-linux-operating-system.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wi-fi-access-for-linux-operating-system</feedburner:origLink></item>
		<item>
		<title>Installing NS 2.35 in Ubuntu 12.04</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/ECk8qYMTfc0/installing-ns-2-35-in-ubuntu-12-04.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/installing-ns-2-35-in-ubuntu-12-04.html#comments</comments>
		<pubDate>Mon, 30 Apr 2012 10:25:59 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Network Simulator 2]]></category>
		<category><![CDATA[ns2]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2177</guid>
		<description><![CDATA[Ubuntu 12.04 Precise Pandolin has been launched and as usual comes with good number of recent software and nice updates. Installation of ns2 over this Ubuntu 12.04 is as usual similar to Ubuntu 11.10, so the same steps hold good for 12.04 also. The users can use Ubuntu 12.04 for quite some more time as it [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/2gn4-tJWntwHOLDSho-cXimar6s/0/da"><img src="http://feedads.g.doubleclick.net/~a/2gn4-tJWntwHOLDSho-cXimar6s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2gn4-tJWntwHOLDSho-cXimar6s/1/da"><img src="http://feedads.g.doubleclick.net/~a/2gn4-tJWntwHOLDSho-cXimar6s/1/di" border="0" ismap="true"></img></a></p><p>Ubuntu 12.04 Precise Pandolin has been launched and as usual comes with good number of recent software and nice updates. Installation of ns2 over this Ubuntu 12.04 is as usual similar to Ubuntu 11.10, so the same steps hold good for 12.04 also.</p>
<p>The users can use Ubuntu 12.04 for quite some more time as it a LTS (Long Term Support) OS.&nbsp; Here are the simple steps to install NS2.35 in Ubuntu 12.04</p>
<p>Step 1: Download NS-2.35 from <a href="http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download">http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download</a></p>
<p>Step 2: Copy the ns-allinone-2.35.tar.gz to the home folder (Example in my case /home/pradeep)</p>
<p>Step 3: There are some softwares need to be downloaded for running NS2, download those softwares and then untar or extract it and give the following commands one by one</p>
<blockquote><p><font face="Georgia">sudo apt-get update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (This is to update the Ubuntu repository)</font></p>
<p><font face="Georgia">sudo apt-get install build-essential autoconf automake libxmu-dev&nbsp;&nbsp;&nbsp;&nbsp; (This is to download the GCC compilers, TCL, Tk ,etc)</font></p>
<p><font face="Georgia">tar zxvf ns-allinone-2.35.tar.gz&nbsp;&nbsp;&nbsp; (This is to extract the tar.gz file into a folder)</font></p>
<p><font face="Georgia">cd ns-allinone-2.35 </font></p>
<p><font face="Georgia">./install&nbsp;&nbsp;&nbsp; (This is to install)</font></p>
</blockquote>
<p>Step 4: Once the installation is succeeded, you will shown to set the path information. set the PATH information in the following files /home/pradeep/.bashrc (You cannot see this file through GUI because it is a hidden file, so open the file using <strong><em>gedit </em></strong>or vi)</p>
<blockquote><p><font face="Georgia">gedit /home/pradeep/.bashrc</font></p>
<p><font face="Georgia">and then edit the PATH and LD_LIBRARY_PATH</font></p>
</blockquote>
<p>That’s it!!!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=ECk8qYMTfc0:x7UReJTL0v8:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=ECk8qYMTfc0:x7UReJTL0v8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=ECk8qYMTfc0:x7UReJTL0v8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=ECk8qYMTfc0:x7UReJTL0v8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=ECk8qYMTfc0:x7UReJTL0v8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/ECk8qYMTfc0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/installing-ns-2-35-in-ubuntu-12-04.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/installing-ns-2-35-in-ubuntu-12-04.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=installing-ns-2-35-in-ubuntu-12-04</feedburner:origLink></item>
		<item>
		<title>Google Drive Launched</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/um0gXSwtXmM/google-drive-launched.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/google-drive-launched.html#comments</comments>
		<pubDate>Fri, 27 Apr 2012 14:34:55 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2163</guid>
		<description><![CDATA[Google has launched Google drive and enabling users based on email request. Once it is activated, an email is been sent to the registered gmail ID. Google drive is accessed at http://drive.google.com. It installs a software on the machine which default sync the files that are already available in Google Docs. So, whatever you have [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/r4yX976dRIiq5oCtLRXso2ujelg/0/da"><img src="http://feedads.g.doubleclick.net/~a/r4yX976dRIiq5oCtLRXso2ujelg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/r4yX976dRIiq5oCtLRXso2ujelg/1/da"><img src="http://feedads.g.doubleclick.net/~a/r4yX976dRIiq5oCtLRXso2ujelg/1/di" border="0" ismap="true"></img></a></p><p>Google has launched Google drive and enabling users based on email request. Once it is activated, an email is been sent to the registered gmail ID. </p>
<p>Google drive is accessed at <a href="http://drive.google.com">http://drive.google.com</a>. It installs a software on the machine which default sync the files that are already available in Google Docs. </p>
<p>So, whatever you have so for in the Google Docs will be synced with the Google Drive/ of your choice.</p>
<p>Soon, Google Drive may overtake Dropbox as Google Drive offers a 5GB Free space whereas Dropbox give 2GB free Space. Will Google Drive cover everything what Dropbox achieved today is still a Quest?</p>
<p>Lets wait and see.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=um0gXSwtXmM:3QZt83I6Jwo:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=um0gXSwtXmM:3QZt83I6Jwo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=um0gXSwtXmM:3QZt83I6Jwo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=um0gXSwtXmM:3QZt83I6Jwo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=um0gXSwtXmM:3QZt83I6Jwo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/um0gXSwtXmM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/google-drive-launched.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/google-drive-launched.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=google-drive-launched</feedburner:origLink></item>
		<item>
		<title>Inter process communication using Shared Memory</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/A_OSzloCuR4/inter-process-communication-using-shared-memory.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/inter-process-communication-using-shared-memory.html#comments</comments>
		<pubDate>Fri, 27 Apr 2012 05:04:07 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Linux Kernel Programming]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2158</guid>
		<description><![CDATA[Explanation: One of the simplest interprocess communication methods is using shared memory. Shared memory allows two or more processes to access the same memory as if they all called malloc and were returned pointers to the same actual memory. When one process changes the memory, all the other processes see the modification. &#160;Shared memory is the fastest [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/JSAFlSyqD-mKUI07w0xNJ4iixXs/0/da"><img src="http://feedads.g.doubleclick.net/~a/JSAFlSyqD-mKUI07w0xNJ4iixXs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JSAFlSyqD-mKUI07w0xNJ4iixXs/1/da"><img src="http://feedads.g.doubleclick.net/~a/JSAFlSyqD-mKUI07w0xNJ4iixXs/1/di" border="0" ismap="true"></img></a></p><p><strong>Explanation</strong>:</p>
<p><span style="line-height: 100%; text-indent: 0.5in;">One of the simplest interprocess communication methods is using shared memory. Shared memory allows two or more processes to access the same memory as if they all called malloc and were returned pointers to the same actual memory. When one process changes the memory, all the other processes see the modification.</span></p>
<p><span style="line-height: 100%; text-indent: 0.5in;">&nbsp;</span><span style="line-height: 100%; text-indent: 0.5in;">Shared memory is the fastest form of interprocess communication because all processes share the same piece of memory. Access to this shared memory is as fast as accessing a process&rsquo;s nonshared memory, and it does not require a system call or entry to the kernel. It also avoids copying data unnecessarily. Because the kernel does not synchronize accesses to shared memory, you must provide your own synchronization. For example, a process should not read from the memory until after data is written there, and two processes must not write to the same memory location at the same time.A common strategy to avoid these race conditions is to use semaphores, which are discussed in the next section. Our illustrative programs, though, show just a single process accessing the memory, to focus on the shared memory mechanism and to avoid cluttering the sample code with synchronization logic.</span></p>
<p><span style="line-height: 100%; text-indent: 0.5in;">&nbsp;</span><span style="line-height: 100%;">There are three flag values include while dealing with shared memory, these flags are supplied as the third parameter of the function</span></p>
<p><span style="line-height: 100%;">&nbsp;</span><span style="line-height: 100%;">int segment_id = shmget (shm_key, getpagesize (), IPC_CREAT | S_IRUSR | S_IWUSER);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong style="line-height: 100%;">IPC_CREAT</strong><span style="line-height: 100%;">&mdash;This flag indicates that a new segment should be created.This permits&nbsp;</span><span style="line-height: 100%; text-indent: 0.5in;">creating a new segment while specifying a key value.</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong>IPC_EXCL</strong>&mdash;This flag, which is always used with IPC_CREAT, causes shmget to fail&nbsp;<span style="line-height: 100%;">if a segment key is specified that already exists.Therefore, it arranges for the calling process to have an &ldquo;exclusive&rdquo; segment. If this flag is not given and the key of an existing segment is used, shmget returns the existing segment instead of creating a new one.</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong>Mode flags</strong>&mdash;This value is made of 9 bits indicating permissions granted to&nbsp;<span style="line-height: 100%;">owner, group, and world to control access to the segment. Execution bits are ignored. An easy way to specify permissions is to use the constants defined in &lt;sys/stat.h&gt; and documented in the section 2 stat man page.1 For example, S_IRUSR and S_IWUSR specify read and write permissions for the owner of the shared memory segment, and S_IROTH and S_IWOTH specify read and write permissions for others.</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;">Program:</p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">#include &lt;stdio.h&gt;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">#include &lt;sys/shm.h&gt;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">#include &lt;sys/stat.h&gt;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">int main ()</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">int segment_id;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">char* shared_memory;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">struct shmid_ds shmbuffer;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">int segment_size;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">const int shared_segment_size = 0&#215;6400;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Allocate a shared memory segment. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">segment_id = shmget (IPC_PRIVATE, shared_segment_size, IPC_CREAT | IPC_EXCL | S_IRUSR | S_IWUSR);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Attach the shared memory segment. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">shared_memory = (char*) shmat (segment_id, 0, 0);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">printf (&#8220;shared memory attached at address %p\n&#8221;, shared_memory);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Determine the segment&rsquo;s size. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">shmctl (segment_id, IPC_STAT, &amp;shmbuffer);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">segment_size = shmbuffer.shm_segsz;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">printf (&#8220;segment size: %d\n&#8221;, segment_size);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Write a string to the shared memory segment. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">sprintf (shared_memory, &#8220;Hello, world.&#8221;);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Detach the shared memory segment. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">shmdt (shared_memory);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Reattach the shared memory segment, at a different address. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">shared_memory = (char*) shmat (segment_id, (void*) 0&#215;5000000, 0);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">printf (&#8220;shared memory reattached at address %p\n&#8221;, shared_memory);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Print out the string from shared memory. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">printf (&#8220;%s\n&#8221;, shared_memory);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Detach the shared memory segment. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">shmdt (shared_memory);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;"><br />
</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">/* Deallocate the shared memory segment. */</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">shmctl (segment_id, IPC_RMID, 0);</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">return 0;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong>Observation</strong></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;">The prorgam can be compiled by</p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%;"><strong>$ gcc -o sharedmem sharedmem.c</strong></p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=A_OSzloCuR4:JGM_pWZc0vc:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=A_OSzloCuR4:JGM_pWZc0vc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=A_OSzloCuR4:JGM_pWZc0vc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=A_OSzloCuR4:JGM_pWZc0vc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=A_OSzloCuR4:JGM_pWZc0vc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/A_OSzloCuR4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/inter-process-communication-using-shared-memory.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/inter-process-communication-using-shared-memory.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=inter-process-communication-using-shared-memory</feedburner:origLink></item>
		<item>
		<title>Semaphore implementation using POSIX Threads</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/yWs7Xhlbhxo/semaphore-implementation-using-posix-threads.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/semaphore-implementation-using-posix-threads.html#comments</comments>
		<pubDate>Fri, 27 Apr 2012 05:02:03 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Linux Kernel Programming]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2156</guid>
		<description><![CDATA[Aim: To illustrate the semaphores in Linux using C for handling two threads. Requirements:GCC Compiler with Linux OS Explanation&#160; This program has two threads, one for reading the input and another for converting the text to upper case letter. However, the thread for converting the text will wait for the semaphore to be released before it starts the [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/yBmgPkFUMyoG2yW7fYNZmGMdY4w/0/da"><img src="http://feedads.g.doubleclick.net/~a/yBmgPkFUMyoG2yW7fYNZmGMdY4w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yBmgPkFUMyoG2yW7fYNZmGMdY4w/1/da"><img src="http://feedads.g.doubleclick.net/~a/yBmgPkFUMyoG2yW7fYNZmGMdY4w/1/di" border="0" ismap="true"></img></a></p><p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong>Aim</strong>: To illustrate the semaphores in Linux using C for handling two threads.</p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong style="line-height: 100%;">Requirements</strong><span style="line-height: 100%;">:</span><span style="line-height: 100%;">GCC Compiler with Linux OS</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong style="line-height: 100%;">Explanation&nbsp;</strong></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong style="line-height: 100%;"></strong><span style="line-height: 100%; text-indent: 0.5in;">This program has two threads, one for reading the input and another for converting the text to upper case letter. However, the thread for converting the text will wait for the semaphore to be released before it starts the operation.</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong><span style="line-height: 100%; text-indent: 0.5in;">Program:</span></strong></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong></strong><span style="text-indent: 0.5in;">//illustration of semaphores.</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="text-indent: 0.5in;">#include &lt;stdio.h&gt;</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 100%; text-indent: 0.5in;">
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">#include &lt;unistd.h&gt;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">#include &lt;stdlib.h&gt;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">#include &lt;string.h&gt;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">#include &lt;ctype.h&gt;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">#include &lt;pthread.h&gt;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">#include &lt;semaphore.h&gt;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">#define BUFFER 1024</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">sem_t sem;</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">char buffer[BUFFER];</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">void *read_thread(void *arg)</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">while(strncmp(&#8220;stop&#8221;, buffer,4)!=0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;Enter text&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">fgets(buffer,BUFFER, stdin);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">sem_post(&amp;sem);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">pthread_exit(&#8220;read Thread exit successful&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">void *convert_thread()</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">int i;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">sem_wait(&amp;sem);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">while(strncmp(&#8220;stop&#8221;,buffer,4)!=0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;Converted text&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">for(i=0;i&lt;strlen(buffer);i++)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;%c&#8221;, toupper(buffer[i]));</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">sem_wait(&amp;sem);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">pthread_exit(&#8220;convert_thread exit successfully&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">int main()</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">int result;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">pthread_t rthread, cthread;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">void *thread_result;</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">result=sem_init(&amp;sem,0,0);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">if(result != 0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;Semaphore initialisation failed&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">exit(1);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;enter text, the program will convert it into upper caswe, to stop enter &#8216;stop&#8217;\n&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">result=pthread_create(&amp;cthread, NULL, convert_thread, NULL);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">if(result != 0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;convert thread creation failed&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">exit(1);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">result=pthread_create(&amp;rthread, NULL, read_thread, NULL);</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">if(result != 0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;read Thread creation failed&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">exit(1);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">result=pthread_join(rthread, &amp;thread_result);</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">if(result!=0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;read Thread join failed&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">exit(1);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;read threaed joined, %s \n&#8221;, thread_result);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">result=pthread_join(cthread, &amp;thread_result);</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">if(result != 0)</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">{</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">printf(&#8220;Convert thread join failed&#8221;);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">exit(1);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="text-indent: 0.5in;">
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">printf(&#8220;Conmvert thread joined, %s \n&#8221;, thread_result);</span></p>
<p></span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">sem_destroy(&amp;sem);</span></p>
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><span style="line-height: 14px;">exit(0);</span></p>
<p></span><span style="line-height: 100%; text-indent: 0.5in;">
<p style="margin-bottom: 0in; border-image: initial; page-break-before: auto; page-break-after: auto; text-align: left; padding: 0in; border: initial none initial;"><span style="line-height: 14px;">}</span></p>
<p style="margin-bottom: 0in; border-image: initial; page-break-before: auto; page-break-after: auto; text-align: left; padding: 0in; border: initial none initial;"><span style="line-height: 14px;">Observation:</span></p>
<p style="margin-bottom: 0in; border-image: initial; page-break-before: auto; page-break-after: auto; text-align: left; padding: 0in; border: initial none initial;"><span style="text-indent: 0.5in; line-height: 100%;">In this program, one thread reads the input and another thread converts the input string into upper case letters. This is repeated till &#8216;stop&#8217; typed.&nbsp;</span><span style="text-indent: 0.5in; line-height: 100%;">The prorgam can be compiled by</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 14px;">
<p style="margin-bottom: 0in; border-image: initial; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto; text-align: left; border: initial none initial;"><strong style="line-height: 100%; text-indent: 0.5in;">$ gcc -o multithread multithread.c -lpthread</strong></p>
<p></span></p>
<p></span></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=yWs7Xhlbhxo:Tjql5gUyrFE:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=yWs7Xhlbhxo:Tjql5gUyrFE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=yWs7Xhlbhxo:Tjql5gUyrFE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=yWs7Xhlbhxo:Tjql5gUyrFE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=yWs7Xhlbhxo:Tjql5gUyrFE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/yWs7Xhlbhxo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/semaphore-implementation-using-posix-threads.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/semaphore-implementation-using-posix-threads.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=semaphore-implementation-using-posix-threads</feedburner:origLink></item>
		<item>
		<title>Multithreading Example using POSIX Threads</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/Z8yXboR1Dlg/multithreading-example-using-posix-threads.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/multithreading-example-using-posix-threads.html#comments</comments>
		<pubDate>Fri, 27 Apr 2012 04:57:13 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Linux Kernel Programming]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2154</guid>
		<description><![CDATA[Requirements : GCC Compiler and any Linux OS with pthread Library Explanation: There are two threads in the following program which are implemented using function pointers, in which one thread is helpful for getting a input from the keyboard and other thread is helpful to convert it to upper case letters. But here both the threads does [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/cxF3348VxXSqgR6zHK9UU2jucig/0/da"><img src="http://feedads.g.doubleclick.net/~a/cxF3348VxXSqgR6zHK9UU2jucig/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cxF3348VxXSqgR6zHK9UU2jucig/1/da"><img src="http://feedads.g.doubleclick.net/~a/cxF3348VxXSqgR6zHK9UU2jucig/1/di" border="0" ismap="true"></img></a></p><p><strong>Requirements</strong> : GCC Compiler and any Linux OS with pthread Library</p>
<p><strong>Explanation</strong>:</p>
<p><span style="line-height: 100%; text-indent: 0.5in;">There are two threads in the following program which are implemented using function pointers, in which one thread is helpful for getting a input from the keyboard and other thread is helpful to convert it to upper case letters. But here both the threads does not depends on each other.</span></p>
<p><span style="line-height: 100%; text-indent: 0.5in;">&nbsp;</span><span style="line-height: 100%; text-indent: 0.5in;">That is, the second thread automatically converts the string to upper case letters itself, does not bothering about the first thread(the string entered through the keyboard). Two seconds delay is given to enter the string via the key board.</span></p>
<p><strong><span style="line-height: 100%; text-indent: 0.5in;">Program:</span></strong></p>
<p><span style="text-indent: 0.5in; line-height: 14px;">&nbsp;</span></p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;unistd.h&gt;</p>
<p>#include &lt;stdlib.h&gt;</p>
<p>#include &lt;string.h&gt;</p>
<p>#include &lt;ctype.h&gt;</p>
<p>#include &lt;pthread.h&gt;</p>
<p>#define BUFFER_SIZE 1024</p>
<p>char buffer[BUFFER_SIZE];</p>
<p>void *read_thread(void *arg)</p>
<p>{</p>
<p>while(strncmp(&#8220;stop&#8221;, buffer,4) !=0)</p>
<p>{</p>
<p>printf(&#8220;enter text:&#8221;);</p>
<p>fgets(buffer,BUFFER_SIZE, stdin);</p>
<p>sleep(2);</p>
<p>}</p>
<p>pthread_exit(&#8220;Read thread exit successful&#8221;);</p>
<p>}</p>
<p>void *convert_thread()</p>
<p>{</p>
<p>int i;</p>
<p>while(strncmp(&#8220;stop&#8221;,buffer,4)!=0)</p>
<p>{</p>
<p>sleep(3);</p>
<p>printf(&#8220;Converted text:&#8221;);</p>
<p>for(i=0;i&lt;strlen(buffer);i++)</p>
<p>printf(&#8220;%c&#8221;,toupper(buffer[i]));</p>
<p>}</p>
<p>pthread_exit(&#8220;Convert_thread exit successful&#8221;);</p>
<p>}</p>
<p>int main()</p>
<p>{</p>
<p>int result;</p>
<p>pthread_t rthread, cthread;</p>
<p>void *thread_result;</p>
<p>printf(&#8220;enter text, the program will convert it into upper case, to stop enter &#8216;stop&#8217;\n&#8221;);</p>
<p>result=pthread_create(&amp;rthread, NULL, read_thread, NULL);</p>
<p>if(result != 0)</p>
<p>{</p>
<p>printf(&#8220;Read_thread creation failed&#8221;);</p>
<p>exit(1);</p>
<p>}</p>
<p>result=pthread_create(&amp;cthread, NULL, convert_thread, NULL);</p>
<p>if(result != 0)</p>
<p>{</p>
<p>printf(&#8220;Cpnvert_thread creation failed&#8221;);</p>
<p>exit(1);</p>
<p>}</p>
<p>result=pthread_join(rthread, &amp;thread_result);</p>
<p>if(result != 0)</p>
<p>{</p>
<p>printf(&#8220;read_thread join failed&#8221;);</p>
<p>exit(1);</p>
<p>}</p>
<p>printf(&#8220;read_thread joined, %s\n&#8221;, thread_result);</p>
<p>result=pthread_join(cthread, &amp;thread_result);</p>
<p>if(result !=0)</p>
<p>{</p>
<p>printf(&#8220;convert_thread join failed&#8221;);</p>
<p>exit(1);</p>
<p>}</p>
<p>printf(&#8220;convert_thread joined, %s\n&#8221;, thread_result);</p>
<p>exit(0);</p>
<p>return 0;</p>
<p>}</p>
<p><strong>Conclusion</strong>:</p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;">In this program, one thread reads the input and another thread converts the input string into upper case letters. This is repeated till &#8216;stop&#8217; typed.</p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 100%;">The prorgam can be compiled by</span></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><strong>$ gcc -o multithread multithread.c -lpthread</strong></p>
<p style="margin-bottom: 0in; border: none; padding: 0in; line-height: 100%; page-break-before: auto; page-break-after: auto;"><span style="line-height: 100%;">After observing the output the lack of coordination between the two threads is evident. Even if the input is not given from the keyboard, the thread does the conversion to upper case letter. So to avoid that, it is necessary to use semaphores.</span></p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=Z8yXboR1Dlg:-MG4qpKpEZ4:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=Z8yXboR1Dlg:-MG4qpKpEZ4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=Z8yXboR1Dlg:-MG4qpKpEZ4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=Z8yXboR1Dlg:-MG4qpKpEZ4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=Z8yXboR1Dlg:-MG4qpKpEZ4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/Z8yXboR1Dlg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/multithreading-example-using-posix-threads.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/multithreading-example-using-posix-threads.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=multithreading-example-using-posix-threads</feedburner:origLink></item>
		<item>
		<title>Send email attachments to Dropbox</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/LgbXr1oF8B8/send-email-attachments-to-dropbox.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/send-email-attachments-to-dropbox.html#comments</comments>
		<pubDate>Thu, 26 Apr 2012 16:49:45 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Dropbox]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2152</guid>
		<description><![CDATA[Have you ever wonder to send email that get stored in Dropbox. Here is a way to do it.&#160;http://sendtodropbox.com/. Create a dropbox account and connect the account with this website&#160;http://sendtodropbox.com/ Once you authorize dropbox to this website, you will be getting a email id something@sendtodropbox.com and just you can send email to this Mail ID. Automatically, [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/yl6z9ornn2VeyLDqmqF87qvmLrY/0/da"><img src="http://feedads.g.doubleclick.net/~a/yl6z9ornn2VeyLDqmqF87qvmLrY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yl6z9ornn2VeyLDqmqF87qvmLrY/1/da"><img src="http://feedads.g.doubleclick.net/~a/yl6z9ornn2VeyLDqmqF87qvmLrY/1/di" border="0" ismap="true"></img></a></p><p>Have you ever wonder to send email that get stored in Dropbox. Here is a way to do it.&nbsp;<a href="http://sendtodropbox.com/">http://sendtodropbox.com/</a>. Create a dropbox account and connect the account with this website&nbsp;<a href="http://sendtodropbox.com/">http://sendtodropbox.com/</a></p>
<p>Once you authorize dropbox to this website, you will be getting a email id something@sendtodropbox.com and just you can send email to this Mail ID. Automatically, the contents are stored in the &#8220;Attachments&#8221; folder inside dropbox.&nbsp;</p>
<p>This will be a very nice application, if in case if your office does not have internet and you want to send information to someone else, you can send email and that gets stored in Dropbox.</p>
<p>Also if you are a teacher or professor, you can accept assignments, project reports to be sent to a email address and that gets stored in dropbox folder. Also there is a provision for a teacher to group the contents based on the students Registration number, categorize based on date of email or users email address.</p>
<p>Also if a small company want to hire employees, they can filter resumes based on the subject of the email. A Small example is given below</p>
<p>Example:</p>
<p><img style="border: 1px solid black;" src="http://www.pradeepkumar.org/wp-content/uploads/2012/04/tsp.jpg" alt="" width="500" height="405" /></p>
<p>In the above image you can automatically unzip the contents of the email and as well you can categorize the emails like&nbsp;</p>
<p>attachments / Date / Filename (so this is what the folder structure in Dropbox).</p>
<p>Try it!!!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LgbXr1oF8B8:RlSI2juicmQ:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LgbXr1oF8B8:RlSI2juicmQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LgbXr1oF8B8:RlSI2juicmQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LgbXr1oF8B8:RlSI2juicmQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LgbXr1oF8B8:RlSI2juicmQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/LgbXr1oF8B8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/send-email-attachments-to-dropbox.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/send-email-attachments-to-dropbox.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=send-email-attachments-to-dropbox</feedburner:origLink></item>
		<item>
		<title>Store Gmail attachments in Dropbox or Box.net</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/YL_Qfc3hSjM/store-gmail-attachments-in-dropbox-or-box-net.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/store-gmail-attachments-in-dropbox-or-box-net.html#comments</comments>
		<pubDate>Thu, 26 Apr 2012 16:36:51 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Dropbox]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2149</guid>
		<description><![CDATA[Many of us will definitely have a gmail account one way or other. If you have a gmail account and if you feel you cant manage the attachments of your gmail account, here is the easier way to do it.&#160; Just visit http://www.attachments.me&#160;and create a account by giving access to your Gmail account, Please cofirm the [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/loEOsKLIikyzVThGwXHj7LkUIJM/0/da"><img src="http://feedads.g.doubleclick.net/~a/loEOsKLIikyzVThGwXHj7LkUIJM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/loEOsKLIikyzVThGwXHj7LkUIJM/1/da"><img src="http://feedads.g.doubleclick.net/~a/loEOsKLIikyzVThGwXHj7LkUIJM/1/di" border="0" ismap="true"></img></a></p><p>Many of us will definitely have a gmail account one way or other. If you have a gmail account and if you feel you cant manage the attachments of your gmail account, here is the easier way to do it.&nbsp;</p>
<p>Just visit <a href="http://www.attachments.me" target="_blank">http://www.attachments.me</a>&nbsp;and create a account by giving access to your Gmail account, Please cofirm the authorisation and here you go, automatically all the attachments in your email will be started appearing in attachments.me.&nbsp;</p>
<p>You can share, download, archive any attachment. Once done if you want to store that in folder there are two other ways, either you can download all the attachments in Dropbox or Box.net. Both are supported by www.attachments.me.</p>
<p>Click &#8220;Accounts&#8221; in the top right corner of your attachments.me page and in the right side menu, you can authorize BOX and Dropbox. Select as per your choice and give the credentials of dropbox and now you can see the attachments of your gmail is started appearing in Dropbox.</p>
<p>Once if it is in dropbox, you can get those files anywhere like iPhone, Android Phones, Desktops, Mac OS, etc.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=YL_Qfc3hSjM:GvIwjCeFcWw:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=YL_Qfc3hSjM:GvIwjCeFcWw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=YL_Qfc3hSjM:GvIwjCeFcWw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=YL_Qfc3hSjM:GvIwjCeFcWw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=YL_Qfc3hSjM:GvIwjCeFcWw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/YL_Qfc3hSjM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/store-gmail-attachments-in-dropbox-or-box-net.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/store-gmail-attachments-in-dropbox-or-box-net.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=store-gmail-attachments-in-dropbox-or-box-net</feedburner:origLink></item>
		<item>
		<title>Dropbox – A cloud based Storage</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/aLRl-ppVzUM/dropbox-a-cloud-based-storage.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/dropbox-a-cloud-based-storage.html#comments</comments>
		<pubDate>Tue, 24 Apr 2012 09:55:25 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Dropbox]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2146</guid>
		<description><![CDATA[Dropbox is a online Storage for anything and it is cloud based. There are large number of benefits if one uses dropbox. If you can afford internet, then you need not use pendrive, you can use Dropbox.&#160; The free version comes with 2GB of space and there are some payment versions too. But if you are [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/DDrB1AfTJySDG-7sDSoZ8QXRGMI/0/da"><img src="http://feedads.g.doubleclick.net/~a/DDrB1AfTJySDG-7sDSoZ8QXRGMI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DDrB1AfTJySDG-7sDSoZ8QXRGMI/1/da"><img src="http://feedads.g.doubleclick.net/~a/DDrB1AfTJySDG-7sDSoZ8QXRGMI/1/di" border="0" ismap="true"></img></a></p><p>Dropbox is a online Storage for anything and it is cloud based. There are large number of benefits if one uses dropbox. If you can afford internet, then you need not use pendrive, you can use Dropbox.&nbsp;</p>
<p>The free version comes with 2GB of space and there are some payment versions too. But if you are comfortable wil Dropbox, you can recommend your friends to open dropbox account and you can get 500MB extra space if each of your friend opens and install dropbox in his/her machine. In that case you can extend the storage size up to 16GB.&nbsp;</p>
<p>Why are you waiting for? go and grab a new account with<a title="Dropbox" href="http://www.dropbox.com" target="_blank"> Dropbox.</a>&nbsp;You can visit http://www.dropbox.com to open dropbox account.</p>
<p>Benefits:</p>
<ol>
<li>You can share any private file through dropbox by a link.</li>
<li>There is a public folder which defaultly shares with everyone.</li>
<li>If you are having a website or blog, to share files among your visitors, you can use the public folder of dropbox or any folder in dropbox and simply share the file using a link (See image below)</li>
<li>Also, other users can send emails to you and the email can be stored in your dropbox account directly with the help of&nbsp;<a href="http://www.sendtodropbox.com/">http://www.sendtodropbox.com/</a></li>
<li>There are so many other benefits like you can host a website using dropbox spaces and lot more.&nbsp;</li>
</ol>
<p>So go and open an account in dropbox and get stored&#8230;&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=aLRl-ppVzUM:gvIlTQePqx8:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=aLRl-ppVzUM:gvIlTQePqx8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=aLRl-ppVzUM:gvIlTQePqx8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=aLRl-ppVzUM:gvIlTQePqx8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=aLRl-ppVzUM:gvIlTQePqx8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/aLRl-ppVzUM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/dropbox-a-cloud-based-storage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/dropbox-a-cloud-based-storage.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dropbox-a-cloud-based-storage</feedburner:origLink></item>
		<item>
		<title>Google Drive will be launched next week</title>
		<link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/LciYOGbJW9g/google-drive-will-be-launched-next-week.html</link>
		<comments>http://www.pradeepkumar.org/2012/04/google-drive-will-be-launched-next-week.html#comments</comments>
		<pubDate>Thu, 19 Apr 2012 15:11:37 +0000</pubDate>
		<dc:creator>tspradeepkumar</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.pradeepkumar.org/?p=2128</guid>
		<description><![CDATA[As part of storing contents in the cloud based solution, Google will be launching a cloud based product next week called “Google Drive”. Google drive will be available for windows, Mac OSX, iOS and Android. Google Drive will be given to users 5GB of free storage (extra space can be purchased separately). It will be [...] [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/1kRqnyZjBcKKdAxaLbrI4aYn1rI/0/da"><img src="http://feedads.g.doubleclick.net/~a/1kRqnyZjBcKKdAxaLbrI4aYn1rI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1kRqnyZjBcKKdAxaLbrI4aYn1rI/1/da"><img src="http://feedads.g.doubleclick.net/~a/1kRqnyZjBcKKdAxaLbrI4aYn1rI/1/di" border="0" ismap="true"></img></a></p><p>As part of storing contents in the cloud based solution, Google will be launching a cloud based product next week called “Google Drive”. Google drive will be available for windows, Mac OSX, iOS and Android. Google Drive will be given to users 5GB of free storage (extra space can be purchased separately). It will be really a tough competition for Dropbox which gives 2GB of free storage. </p>
<p>The tag line which google gives for Google Drive is “All your files, everywhere”, also there will be a feature of mobile app document editing facility. Google drive will be positively&#160; launched at <a href="http://drive.google.com">http://drive.google.com</a></p>
<p><a href="http://www.pradeepkumar.org/wp-content/uploads/2012/04/86.jpg"><img style="display: inline" title="86" alt="86" src="http://www.pradeepkumar.org/wp-content/uploads/2012/04/86_thumb.jpg" width="240" height="180" /></a></p>
<p>(Image Source http://www.techfond.com)</p>
<p>Though Google audio, video storage exists now and they are much popular, Google Drive may be hit when compared with other solutions like Dropbox, SkyDrive, Box.net, etc. The main benefit behind this is “Single Account, multiple applications”.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=YwkR-u9nhCs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LciYOGbJW9g:eSjrunT0EH8:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LciYOGbJW9g:eSjrunT0EH8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LciYOGbJW9g:eSjrunT0EH8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pradeepkumarorg?a=LciYOGbJW9g:eSjrunT0EH8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Pradeepkumarorg?i=LciYOGbJW9g:eSjrunT0EH8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/LciYOGbJW9g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.pradeepkumar.org/2012/04/google-drive-will-be-launched-next-week.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:origLink>http://www.pradeepkumar.org/2012/04/google-drive-will-be-launched-next-week.html?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=google-drive-will-be-launched-next-week</feedburner:origLink></item>
	<item><title>Links for 2011-07-03 [Digg]</title><link>http://feedproxy.google.com/~r/Pradeepkumarorg/~3/ZcECDBUHeRc/null</link><pubDate>Mon, 04 Jul 2011 00:00:00 PDT</pubDate><guid isPermaLink="false">null#2011-07-03</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://digg.com/news/technology/pradeepkumar_org?utm_campaign=Feed%3A+http%3A%2F%2Fservices.digg.com%2F2.0%2Fuser.getActivity%3Ftype%3Drss%26activity_type%3Ddigg%26username%3Dtspradeepkumar&amp;utm_medium=feed&amp;utm_source=diggapi"&gt;Pradeepkumar.org&lt;/a&gt;&lt;br/&gt;
This is about technology blog deals with &amp;quot;how to&amp;quot; for various tools like ns2, embedded systems, linux, etc.It also displays video lectures, lecture notes of various subjects of indian universities&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/Pradeepkumarorg/~4/ZcECDBUHeRc" height="1" width="1"/&gt;</description><feedburner:origLink>http://www.pradeepkumar.org/null#2011-07-03</feedburner:origLink></item></channel>
</rss><!-- Dynamic page generated in 1.963 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-28 03:39:28 -->

