Найти тему
D21nk Master

Аргументы твоей программы

В предыдущей статье мы разобрали двумерные массивы,как собственно и массивы строк.Сегодня поговорим о том,что запало мне глубоко в сердечко и застряло там навсегда-аргументы программы.

Изначально может быть не понятно вовсе как такое вообще может быть,что из консоли или терминала можно передать аргументы и использоваться их как тебе вздумается.

Чтобы понять лучше эту тему-вам нужно понять,что всё,начиная от биоса до браузера,на котором вы открываете порнохаб-программы.

То есть одна программу запускает другую,просто работают в разной среде.На самом деле мы уже запускали программы с аргументами:

ls директория

dir папка

Директория и папка как раз и выступают аргументами.Было бы здорово использовать такую же конструкцию в нашем шифровании.Как вы понимаете-после получения аргументов,их надо где-то хранить,чтобы с ними работать.

Всё это на себя берёт функция main:

void main(int argc,char *argv[])

Вместо обычного определения функции-мы добавили два аргумента,первый argc примет количество аргументов,argv-заберёт строки из аргументов.Тут есть небольшой подвох,потому как первый аргумент всегда занят и имеет имя самой программы:

void main(int argc,char *argv[])
{
printf("Program's name:%s\n",argv[0]);
}

Все же остальные мы можем использоваться как хотим,с тем же открытием файлов:

void main(int argv,char *argv[])
{
FILE *file=fopen(argv[1],"r");
if(file!=NULL)
{
while(!feof(file))
printf("%c",getc());
}
fclose(file);
}

Если вы соберёте эту программу-у вас получится нечто полезное,а именно ваш личный аналог программы cat или type,которые выводят содержимое файлов.

В заключение добавлю,что аргументы main не обязаны называться именно так и иметь именно такой порядок,это просто стандартизированная запись,которой придерживается большинство разработчиков.

Домашнее задание: переписать программу по шифрованию с приёмом файла как аргумент и добавить в программу по приёму вызова обработчик неудачного открытия файла.

С вами был D21nkMaster,желаю удачи!