argv[0] "represents" the name of the executable, which can be the name of the executable with or without path or empty depending on the OS and implementation, so the first argument would be in argv[1]
174 - If the value of argc is greater than zero, the string pointed to by argv[0] represents the program name;
174 - if the value of argc is greater than zero, the string pointed to from argv[0] "represents" the name of the program;
175 - argv[0][0] shall be the null character if the program name is not available from the host environment.
175 - argv[0][0] should be null if the program name is not available from the host environment. (for example: the operating system)
176 - If the value of argc is greater than one, the strings pointed to by argv[1] through argv[argc-1] represent the program parameters.
176 - if the value of argc is greater than one, the strings pointed to by argv[1] through argv[argc-1] represent the program parameters.
argv[0] "represents" the name of the executable, which can be the name of the executable with or without path or empty depending on the OS and implementation, so the first argument would be in argv[1]
reference:
http://c0x.coding-guidelines.com/5.1.2.2.1.html