| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как прочесть параметры с которыми запущена програ? |
| Автор: vood 26.7.2006, 11:41 |
| У меня возник такой вопрос если я запущу свою программу с какаким то параметром, то как мне в ее коде получить к ним доступ? |
| Автор: _hunter 26.7.2006, 11:49 |
| в main тебе приходит число параметров argc, и сами параметры argv |
| Автор: vood 26.7.2006, 11:56 |
| _hunter, ты меня конечно извини но в этом массиве у меня передаются имена всех файлов в директории с приложением (хотя я не знаю почему; сам пробовал такое) |
| Автор: Romikgy 26.7.2006, 12:05 | ||
а пример кода можно? PS во косяк с виндой или чем? |
| Автор: Rockie 26.7.2006, 12:16 | ||
vood, argc - кол-во параметров, по умолчанию он равен 1, а в argv[0] сидит полный путь к файлу. это параметр по умолчанию
попробуй запусти "твой_файл 1 2 3" |
| Автор: ptr 26.7.2006, 12:49 |
| vood, если пишешь под *nix, то проще и лучше будет воспользоваться getopt, getopt_long. Кстати а ты не перепутал argv и envp? Вообще-то это не совсем верно, т.к. по-умолчанию argv[0] содержит имя, по которому была вызвана программа (и это необязательно полный путь). А не по умолчанию argv[0] может содержать всё, что угодно. |
| Автор: Rockie 26.7.2006, 16:19 | ||
ptr, а можно пример в каких случаях нет полного пути? |
| Автор: Rockie 26.7.2006, 16:45 |
| vood, а компилятор не BC? |
| Автор: Romikgy 26.7.2006, 16:46 |
| хоть я и не попробуй запустить из реестра или из назначения заданий или через выполнить... |
| Автор: NextAlex 26.7.2006, 21:00 | ||||
извини за дурацкий вопрос, но с каким аргументом ты запускаешь прогу ?
при запуске такого кода с аргументом *, как раз и получается список всего содержимого директории это старый прикол и на форуме это было |
| Автор: Romikgy 26.7.2006, 21:46 | ||
Гы а я не знал , надо будет поковырять |
| Автор: ptr 27.7.2006, 05:05 | ||||
Вот примеры (из командной строки вызывается test.exe):
Из назначенных и через выполнить полный путь будет в argv[0]. |
| Автор: NextAlex 27.7.2006, 08:42 |
| Romikgy, я уже ковырял - прикольная тема можно получать список файлов по маске - круче чем стандартный dir |
| Автор: vood 27.7.2006, 11:57 |
| компилятор Dev C++ пишу под винду параметр передаю строковый |
| Автор: Rockie 27.7.2006, 16:57 |
| ptr, может быть дело в системе, у меня при все равно полный путь пишется.. остальное так не запускается.. |
| Автор: ptr 28.7.2006, 06:26 |
В смысле? Не только в системе, но и командном интерпретаторе. А исходник можно? |
| Автор: apook 28.7.2006, 11:31 | ||
Если переделать код vooda вот так
и запустить из коммандной строки: dir C: | test.exe то получится именно тот эффект Получается что функция getargv(или как там она называется _getargv) проделывает что-то подобное ? Но с чего-ради |
| Автор: ptr 28.7.2006, 15:19 | ||
Для начала ты забыл выделить память
Что за эффект? Не понял. |
| Автор: NextAlex 28.7.2006, 19:32 |
| vood, выложил бы код уже помогли бы слова "строковый параметр" не говорят ничего - он не может быть другим |