Другие языки программирования и технологии

Аргументы командной строки (С)

Что это такое (и почему аргументы именно целого и двойного указателя на чар?)? Как это работает? Как это использовать? Как это связать с прогой на С? (буду благодарен за ссылку на литературу)

Честно говоря, я пару раз перенаправлял ввод/вывод (для простой проги, работающей с текстом) и знаю, что main () связывает прогу и ком. строку - все, больше ничего не знаю. Т.е. в-нулевых, меня интересует что вообще такое сmd.exe (не просто в двух словах, что это прога, которая принимает команды и выполняет какие-то операции, а желательно поподробнее), а во-первых, как управлять и что такое аргeменты командной строки и как все это связать с прогой на С (например нижеследующей):

#include <stdio.h>
main ()
{
static char ar [81];
gets (arr);
putchar ('\n');
for (static int count; *(arr + count) != '\0'; count++) printf ("%c", *(arr + count) + 1 + count);
}
Oleg Setinus
Oleg Setinus
287
целое - это количество аргументов командной строки.
Двойной указатель на чар - потому что в строка в си - это указатель на чар. А массив строк - это указатель на указатель на чар. То есть параметры командной строки - это массив строк, с указанием размера массива (целый параметр) .
Поэтому в вашем примере правильное определение функции main(int argc, char **argv);
тогда при запуске вашей программы: myProg.exe аргумент1 аргумент два
argc - 3
argv[0] - аргумент1
argv[1] - аргумент
argv[2] - два

cmd.exe - это командный процессор Windows или приложение "командная строка"
Умеет: - либо исполнять внутренние команды (copy dir md ..)
- либо запускать сторонние приложения (myProg.exe)
- либо исполнять командные файлы (*.bat *.cmd)
Владимир Лирик
Владимир Лирик
8 642
Лучший ответ
cmd . exe - это интерпритатор командной строки.. . если вы пользовались ОС ДОС, то там графики не было и все команлды по копированию, удалению, созданию файлов выполнялись методом набора текста с клавиатуры.. . этот метод был удобен, потому что позволял не только запускать команды, а запускать их с определенными командами.. . например
dir /w
выведет только имена файлов и каталогов, в то время как
dir
выведет полную информацию, дату создания файлов, и атрибуты.. . вот в данном случае /w - это и есть аргумент для программы dir... все эти аргументы обрабатываются самой программой и в зависимости от того что передано - по-разному выполняет определенные действия.. . такие аргументы чаще всего называются ключами.. .
далее, когда вы пишете программу, то функция main - не выводит данные в командную строку.. . это главная функция, с которой начинается выполнение программного кода.. . а выводить можно так:
cin >> myvar;
или через printf (первый вариант лучше).. .
вернемся к cmd . exe - это интерпретатор командной строки, который остался еще от ДОС.. . он до сих пор так же актуален.. . можно например через нее запустить блокнот, набрав notepad.exe, а можно открыть блокнотом определенный файл notepad.exe c:\123.txt - в этом случае блокнот получает в качестве аргумента название файла и пытается его по этому пути открыть...
U/
User /
34 293