This blog is under construction

Tuesday, 31 December 2013

main function in C

main() function is mandatory for any C program.  Because, the program execution starts from main().  Default return type for main function is an integer.  Return value from main function could help us to find the exit status of a C program.

Consider the following example,
 
  #include <stdio.h>
  int main() {
        int val;
        printf("Enter an integer: ");
        scanf("%d", &val);

        if (val < 0) {
                printf("%d is negative\n", val);
                return (-1);
        } else {
                printf("%d is positive\n", val);
                return (val);
        }
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out
  Enter an integer: -1
  -1 is negative
  jp@jp-VirtualBox:~/$ echo $?
  255  // exit status of the program
  jp@jp-VirtualBox:~/$ ./a.out
  Enter an integer: 50
  50 is positive
  jp@jp-VirtualBox:~/$ echo $?
  50  // exit status of the program


How to get exit status of a command?
"echo $?" provides exit status of any program.  Here, the exit codes of our program are the return values from main function.  Exit codes are from 0 to 255(unsigned char).  So, shell would return 255 for the exit code -1(wraparound occurs).

What is command line argument?
Basically, command is an executable used to perform a specific task(eg. ls command). Any arguments supplied to an executable(command) are called command line arguments.

Example:
ls -a  => lists all files in a directory(including hidden files)

Here,
ls  - command
-a - command line argument

main function with command line arguments:
main function can be written with no arguments or with command line arguments.

Consider the following example,
int main(int argc, char *argv[]) {
         : 
       return 0;
}

Here, we have written main function with command line arguments.
argc and argv are command line arguments.
argc    - number of command line arguments
*argv[] - array of character pointers

How to pass command line arguments in C?
While executing program in the shell, we can supply arguments along with executable name.

Example: ./a.out   arg1  arg2  arg3
./a.out  - Executable
arg1, arg2, arg3 - command line arguments

Example C program to illustrate command line arguments:
 
  #include <stdio.h>
  int main(int argc, char *argv[]) {
        int i;
        for (i = 0; i < argc; i++) {
                printf("argv[%d]: %s\n", i, argv[i]);  // prints command line arguments
        }
        return 0;
  }

  Output:
  jp@jp-VirtualBox:~/$ ./a.out india is my country
  argv[0]: ./a.out
  argv[1]: india
  argv[2]: is
  argv[3]: my
  argv[4]: country



2 comments:

  1. Hello Everyone !

    USA SSN Leads/Dead Fullz available, along with Driving License/ID Number with good connectivity.

    All SSN's are Tested & Verified.

    **DETAILS IN LEADS/FULLZ**

    ->FULL NAME
    ->SSN
    ->DATE OF BIRTH
    ->DRIVING LICENSE NUMBER
    ->ADDRESS WITH ZIP
    ->PHONE NUMBER, EMAIL
    ->EMPLOYEE DETAILS

    *Price for SSN lead $2
    *You can ask for sample before any deal
    *If you buy in bulk, will give you discount
    *Sampling is just for serious buyers

    ->Hope for the long term business
    ->You can buy for your specific states too

    **Contact 24/7**

    Whatsapp > +923172721122

    Email > leads.sellers1212@gmail.com

    Telegram > @leadsupplier

    ICQ > 752822040

    ReplyDelete
  2. Dell Laptop Service center are giving repair service at the door. We should high quality Dell out of warranty Laptop Repair, removal of virus, screen removal, wireless network set up, battery removal, motherboard replacement to several other are offered at budget friendly price and it’s Negotiable. We can fix them all in time by our well experience and certified technicians. If you want to repair your laptop in front of your eyesight, than you may call us: 7217871051

    ReplyDelete