|
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 213
|
||||||
Error: 'system' was not declared in this scope24.09.2019, 11:47. Показов 10511. Ответов 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
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 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
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
||||||||
| 27.09.2019, 16:14 | ||||||||
|
Еще раз: я спорю не с конкретной цитатой. Однажды я даже извратнулся с именами: прописал в конец настройки программы, вместо конфига. То есть вызывал программу по ссылке ./prog_1000_1000_s_Добавлено через 12 минут
0
|
||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 27.09.2019, 16:16 | ||
|
А то так получается, что вы спорите совсем не с тем, что было сказано. Подсказка: имя исполняемого файла, и имя, по которому, файл был исполнен - это разные вещи.
0
|
||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
||
| 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
|
||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|||||||||||
| 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
|
|||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|||||
| 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
|
||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
||||||||
| 29.09.2019, 08:28 | ||||||||
|
Или это вы упорно спорите не с тем, что было сказано, а со своими фантазиями. Так вот, new использует механизм исключений. Где в вашем коде обработка исключений? noexcept(a = new int[10000000]);
0
|
||||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|||||||||||||||||||||
| 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
|
|||||||||||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|||
| 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
|
|||||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
|
|||
| 01.10.2019, 09:54 | |||
|
С каких это пор соглашение о передаче аргументов в main стало С++ специфичным?! Код проверки argv[0] ты так и не привел, хотя утверждаешь что он стандартный.
0
|
|||
| 01.10.2019, 09:54 | |
|
Помогаю со студенческими работами здесь
60
[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
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|