Thursday, June 18, 2009

Reversing a string, without additional memory

#include

int main()
{
char ch;
int i, j;
char s[10];
gets(s);
//count string length
for(j = 0; s[j] != '\0'; j++);
--j;
// now j has string lentgth

for(i = 0; i < j; i++)
{
*(s+j) = *(s+i)+*(s+j);
*(s+i) = *(s+j)-*(s+i);
*(s+j) = *(s+j)-*(s+i);
--j;
}

printf("Reversed: %s", s);
return 0;
}


So the sample output can be,
$ ./a.out
sample
elpmas

Cheers.

Monday, May 25, 2009

about:config in mozilla

Hi all.

Have you ever tried the typing url "about:config" in your Mozilla firefox browser?
Don't wait. Try it in the next tab now.
Here you can change all the hidden preferences.

If you are confused or don't know how to edit the values, you can get more details on that from this page.
http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries

Tuesday, May 19, 2009

Printing a pyramid pattern using C

#include
int main()
{
int m , r=4,i,j,k,l,star_pos;
//for creating m rows
for(i=0;i
{
//inside a row now
star_pos=(r-i)-1; //set initial position
for(j=0;j<=r+i;j++)
{
//print star on a condition
//printf("\n Debug: star_pos=%d",star_pos);
if(j==star_pos)
{
printf("*");
star_pos = star_pos + 2;
}
//print space by default.
else
printf(" ");
}
printf("\n");
}
printf("\nBye");
}

Thursday, April 2, 2009

Issues with Shell prompt

Hi folks,

Yesterday I was working with a Solaris OS.
Since I use Linux, I felt difficult to use the shell with Sun OS.
  • BackSpace was not working
  • When I press TAB auto complete was not working.
I went mad, and got highly irritated. Soon Google helped me.

It is simple:
  • Type "bash" in your command prompt.
  • Then you will get a new prompt, where all these things works.
OR
  • Contact your administrator to check which Shell is installed in the OS.
I think this details helped you.
Leave your queries here.

Tuesday, March 31, 2009

Command: date

Hi folks,

yourprompt$ date
will display your current date.

But how we can format the output?
Like I need the output as 21st Jan, 2009.
So there is a technique for that.
yourprompt$ date '+FORMAT'

Note: You can replace the FORMAT with the following characters.

%%
a literal %
%a
locale's abbreviated weekday name (Sun..Sat)
%A
locale's full weekday name, variable length (Sunday..Saturday)
%b
locale's abbreviated month name (Jan..Dec)
%B
locale's full month name, variable length (January..December)
%c
locale's date and time (Sat Nov 04 12:02:33 EST 1989)
%C
century (year divided by 100 and truncated to an integer) [00-99]
%d
day of month (01..31)
%D
date (mm/dd/yy)
%e
day of month, blank padded ( 1..31)
%F
same as %Y-%m-%d
%g
the 2-digit year corresponding to the %V week number
%G
the 4-digit year corresponding to the %V week number
%h
same as %b
%H
hour (00..23)
%I
hour (01..12)
%j
day of year (001..366)
%k
hour ( 0..23)
%l
hour ( 1..12)
%m
month (01..12)
%M
minute (00..59)
%n
a newline
%N
nanoseconds (000000000..999999999)
%p
locale's upper case AM or PM indicator (blank in many locales)
%P
locale's lower case am or pm indicator (blank in many locales)
%r
time, 12-hour (hh:mm:ss [AP]M)
%R
time, 24-hour (hh:mm)
%s
seconds since `00:00:00 1970-01-01 UTC' (a GNU extension)
%S
second (00..60); the 60 is necessary to accommodate a leap second
%t
a horizontal tab
%T
time, 24-hour (hh:mm:ss)
%u
day of week (1..7); 1 represents Monday
%U
week number of year with Sunday as first day of week (00..53)
%V
week number of year with Monday as first day of week (01..53)
%w
day of week (0..6); 0 represents Sunday
%W
week number of year with Monday as first day of week (00..53)
%x
locale's date representation (mm/dd/yy)
%X
locale's time representation (%H:%M:%S)
%y
last two digits of year (00..99)
%Y
year (1970...)
%z
RFC-822 style numeric timezone (-0500) (a nonstandard extension)
%Z
time zone (e.g., EDT), or nothing if no time zone is determinable


For example:

yourprompt$ date '+%d/%m/%y'
will display 21/01/2009

Leave queries if you have any.

Friday, March 6, 2009

Why Linux?

Hi Guys,

I was reading a very useful book, that is Linux Starter Pack.
Their introduction is:

"New to the wonderful world of Linux? Looking for an easy way to get started? Download our complete 130-page guide and get to grips with the OS in hours rather than weeks or months. We show you how to install Linux onto your PC, navigate around the desktop, master the most popular Linux programs and fix any problems that may arise."

Great! Quite interesting,right? So as the book is. Those who are planning for a migration and those who migrated and are still newbies can find it very useful.
The following are few things which clarifies a person who wants a migration but not able to do it by hearing few rumors.
  1. Linux is free!
  2. Linux looks and works a lot like Windows.
  3. Linux has lots of software ready for you to try.
  4. Linux is secure by default
  5. Linux is smart by default
  6. Linux looks great

Download the pdf version here.


Also if you are choosing Ubuntu, from a myriad of Linux Distros, as I am using that :), you may find this pocket reference as very useful again. It contains all the howto(s) with Ubuntu.
Downloading it here. Ubuntu Pocket Reference.

Monday, February 23, 2009

grep,egrep and fgrep

Grep provides two kinds of variant ( egrep(grep -E) and fgrep(grep -F)).

Egrep or grep –E is called extended regular expression based pattern matching.

You can use the following regular expression format.
^, $, \, [], [^], ., *


More information is available in man page for grep.

Sunday, February 22, 2009

Recovering a file deleted with rm.

There are lot of issues regarding recovering a deleted file using rm command.
Even I am not sure, whether it can be recovered or not.

But as per man page for rm says,
.....
Note that if you use rm to remove a file, it is usually possible to
recover the contents of that file. If you want more assurance that the
contents are truly unrecoverable, consider using shred.
.......
It is recoverable.
But the recovery depends on the file system and the reliability of the hard disk.
So try it and add your comments to this post.

Backgrounding a running process

A process is running in the terminal and is associated with the terminal. Through the setsid() sys call we can disassociate it from the Terminal.
But from the command line how to disassociate it from the terminal. ie. If we close the terminal the process should not get terminated.

For this issue,
If process is already running, also if you are able to get the command prompt, try this command
$bg jobid
(Make sure that you are giving job id, not the process id).


If you are not able to get the command prompt, use Ctrl-Z, to stop it get command prompt. Once you get command prompt, use bg command as mentioned.

Disabling login permission to user accounts in unix

In Unix terms it is called as locking, so that no one can use that username to login.

The command for it is "passwd -l username".

And to unlock it "passwd -u username".

You should be logged in as "root" to do the above operations.

What will happen when a user try to login after his home directory get full?

It depends on how the user login, with (telnet,ssh, rlogin) or login through desktop session.
For telnet login, user will be able to login but he won't be able to create any file.

For desktop the answer could be yes and no. Some desktops like GNOME could point the creation of the files to /tmp which would still allow the user temporary files to be created and have a successful login. These would generally be the unix socket files for IPC between applications and the underlying framework. What could get blocked is the further use of the desktop if any configuration changes are done as they would need to be stored in the $HOME.

In earlier versions of GNOME, $HOME was used in which case the login would fail but later they moved on to use $TMPDIR (generally pointing to /tmp or /var/tmp).

Monday, February 9, 2009

Vi editor difficulty in Ubuntu

Vi editor difficulty in Ubuntu

Hi,
I was using Fedora.
I shifted to ubuntu now.
In the first two days I was feeling difficulty with typing in Vi editor.
Up/Down arrow problem,Insert was not working properly.
And it won't show insert while we press insert key etc..

I didn't go deep to learn why it happens and how to learn those key shortcuts.
Rather I started using the Vim.

So Beginners,

instead of using
vi file.c
use
vim file.c