|
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 221
|
||||||
Error: 'system' was not declared in this scope24.09.2019, 11:47. Показов 11437. Ответов 68
Метки нет (Все метки)
Как я понял параметры argv[] это консольные команды которые добавляются к имени файла в командой строке.
Можно ли способом описаным у меня ниже назначить команде определенные действия при вызове программы с этой командой?
Мне нужно чтобы программа не выключалась после работы. В делфи для этого использовал read;. А как без system(pause) или каким-то другим способом оставить программу после выполнения? Если че язык С++ не знаю вобще, только изучаю и многое непонятно -_-. Добавлено через 6 минут Проблема с pause решена. Натупил по невнимательности. Там ниже кода вообще бред написан. Добавлено через 1 минуту А нет всетаки пишет: error: 'system' was not declared in this scope
0
|
||||||
| 24.09.2019, 11:47 | |
|
Ответы с готовыми решениями:
68
Не компилируется приложение: 'system' was not declared in this scope
|
| 27.09.2019, 15:39 | |
|
Не по теме: Чем на больше страниц растянулась тема, тем меньше в этой теме смысла. DrOffset, луче бы мне в личку ответил (току больше бы было) на счет видосов по С++ я спрашивал.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 27.09.2019, 15:44 | |
|
del
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 27.09.2019, 15:49 | |
|
Если программе нужно знать, как ее вызвали, она проверяет arv[0].
Напр из хорошо известного: runq, rmail, sendmail, rsmtp - это символьные ссылки на exim4, если установлен этот почтовик. Очевично, они меняют логику работы программы.
0
|
|
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
||||||||
| 27.09.2019, 16:14 | ||||||||
|
Еще раз: я спорю не с конкретной цитатой. Однажды я даже извратнулся с именами: прописал в конец настройки программы, вместо конфига. То есть вызывал программу по ссылке ./prog_1000_1000_s_Добавлено через 12 минут
0
|
||||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 27.09.2019, 16:16 | ||
|
А то так получается, что вы спорите совсем не с тем, что было сказано. Подсказка: имя исполняемого файла, и имя, по которому, файл был исполнен - это разные вещи.
0
|
||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
||
| 27.09.2019, 18:27 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 27.09.2019, 20:20 | |||||||
|
а о том, что употребив слово "всегда", Бро поведал нам прохладную историю. такое впечатление, что ты читаешь текст, и видишь то, чего нет. что говорят или пишут. особенно это касается случаев, когда они заявляют о "стандартных проверках". а по факту, там проверять вообще нечего. а код возврата дочернего процесса где? "rm очень_важный_файл". и если у него действительно съедут аргументы, и если он мух не ловит, тогда он поимеет один аргумент очень_важный_файл в этом случае, grep будет думать, что это - образец, который нужно искать в тексте, который ему дадут на входе. то есть, grep будет думать, что запущен в режиме конвейера: ololo | grep очень_важный_файли зависнет в ожидании данных из канала ввода. что у тебя точно не получится, так это ничайно удалить нужный файл.
0
|
|||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 27.09.2019, 20:25 | ||
|
0
|
||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
|||||||||||
| 28.09.2019, 09:41 | |||||||||||
|
Есть утилита cat, которая берет файлы, переданные ей в аргументах, и выводит их содержимое. Естественно, свое содержимое она не выводит. Вы ей подсовываете аргументы не в argv[1]...argv[N], а в argv[0]...argv[N-1]. Каким образом программа должна узнать, что ее вызвал криворукий погромист, плюющий на стандарты? А главное - какое ей до этого дело? Она честно выведет содержимое всех файлов кроме первого. Это будет не то, чего ожидал погромист, но то, что он накодил. man system
0
|
|||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 28.09.2019, 23:01 | |||||||
|
я подумал, что когда ты писал: на самом же деле, если я правильно тебя понял, ты имел ввиду запуск BusyBox. если так, и если BusyBox мух не ловит, я бы задумался: стоил и вообще с ним связываться. Добавлено через 9 минут как это коррелирует с твоим дурацким "то есть"? а во-вторых, у тебя какие то сложности проверить аргументы что ли?
0
|
|||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
|||||
| 29.09.2019, 00:33 | |||||
|
С какой целью? Если вызывающая сторона гарантирует правильный вызов.
0
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 29.09.2019, 01:00 | ||||||||||
|
ты реально видишь то, чего нет. 1. в нулевом аргументе хранится путь к модулю, в остальных аргументах - собственно, аргументы команды. 2. путь к модулю не был передан. значит все аргументы - собственно, аргументы команды. итак, ты берешь нулевой аргумент. нормализуешь его. запрашивает через системное апи путь к собственному модулю. и сравниваешь. если равны - значит это первый кейс. если нет - второй кейс. дальше валидируешь собственно аргументы. а ты оказывается вообще ни бум-бум? если вкратце: проверка успешности выделения памяти имеет смысл только и только для случая, когда new не кидает исключения.
0
|
||||||||||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 29.09.2019, 01:02 | ||
|
0
|
||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
||||||||
| 29.09.2019, 08:28 | ||||||||
|
Или это вы упорно спорите не с тем, что было сказано, а со своими фантазиями. Так вот, new использует механизм исключений. Где в вашем коде обработка исключений? noexcept(a = new int[10000000]);
0
|
||||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
|||||||||||||||||||||
| 30.09.2019, 14:49 | |||||||||||||||||||||
|
Тебя не устраивает что в argv[0] хранится не только имя файла, а еще и путь к нему? Тебя не устраивает редкое исключение, когда argc=0 и тогда argv[0]=NULL? Тебя не устраивает существование идиотов, подменяющих argv[0] на свой мусор? Тебя не устраивает что-то еще? Повторяю вопрос: ты даешь 100% гарантию что операция выделения памяти закончится успешно? Стандартное выделение памяти в Си:
Но код проверки argv[0] ты так и не привел. Получается, ты и сам не знаешь, как он должен выглядеть, раз не скопипастил откуда-нибудь и не написал с нуля. Так какой смысл позориться дальше и утверждать что это вот самая-самая важная проверка, без нее никуда.
0
|
|||||||||||||||||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||||||||||
| 30.09.2019, 15:15 | |||||||||||||
noexcept, который только проверяет выражение no throw оно или нет.new который не бросает исключения выглядит так:
0
|
|||||||||||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
|||
| 30.09.2019, 18:10 | |||
|
Хорошо, ваш вариант более правильный, хотя работоспособны оба.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 30.09.2019, 18:17 | |||
|
в которой ни бум бум. пьяный проспиццо, дурак - никогда (ц)Пётр 1. Добавлено через 3 минуты
1
|
|||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||
| 30.09.2019, 18:22 | |||||
|
Поэтому если уж речь о С++, то давайте говорить в контексте С++, а не смешивать. Понятное дело, что в каком-то случае вам может быть нужна обратная совместимость с Си, но это уже другая тема, ИМХО. x = new type[size] nothrow или нет, а затем вызывает обычный new, со всеми вытекающими и исключения все еще надо будет ловить, если надо.
0
|
|||||
|
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,095
|
|||
| 01.10.2019, 09:54 | |||
|
С каких это пор соглашение о передаче аргументов в main стало С++ специфичным?! Код проверки argv[0] ты так и не привел, хотя утверждаешь что он стандартный.
0
|
|||
| 01.10.2019, 09:54 | |
|
[Error] 'm' was not declared in this scope [Error] 'k' was not declared in this scope [Error] 'If' was not declared in this scope Ошибка: [Error] 'x' was not declared in this scope
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|