Аргументы функции main()
В языке C заданы два встроенных аргумента функции main: argc и argv.
Выглядит это так:
int main(int argc, char *argv[]) {...}
Аргумент argc типа integer содержит в себе количество аргументов командной строки.
Аргумент argv типа char - указатель на массив строк. Каждый элемент массива указывает на аргументы командной строки. Один параметр отделяется от другого пробелами.
- argv[0] - полное имя запущенной программы
- argv[1] - первая строка записаная после имени программы
- argv[2] - вторая строка записаная после имени программы
- argv[argc-1] - последняя строка записаная после имени программы
- argv[argc] - NULL
В средах разработки фирмы Borland (Borland Builder C++, Borland C++ и т.п.) предусмотрен еще и третий аргумент env, который, так же как и argv является указателем на массив строк, но содержит установки среды:
int main(int argc, char *argv[], char *env[]) {...}
Если необходимо в качестве параметра иметь строку, содержащую пробелы, то ее надо заключить в двойные кавычки. Если аргументом является число, то оно рассматривается как строка. Для работы с ним, как с числом необходимо его преобразовать, используя соответствующую функцию.
Пример:
#include "stdio.h" #include "stdlib.h" int main(int argc, char *argv[], char *env[]) { int i; printf("Количество аргументов командной строки %d \n", argc); printf("Аргументы командной строки:\n); for (i = 0; i < argc; i++) printf("%s\n", argv[i]); printf("\nАргументы состояния среды:\n"); for (i = 0; env[i] != NULL; i++) printf("%s\n", env[i]); return 0; }