argc is the number of command line arguments to a program, INCLUDING the name of the program itself. In bash: $ gcc print_integer.c test_print_integer.c -o test_print_integer Inside gcc: argc = 5 argv[0] = "gcc" argv[1] = "print_integer.c" argv[2] = "test_print_integer.c" argv[3] = "-o" argv[4] = "test_print_integer"