Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Перечитывал вчера вечером, и встретил Диомидис Спинеллис "Анализ программного кода на примере Open Sourse"В языках С,С++ для передачи информации из операционной системы через командную строку в программу служат два аргумента функции main. По традиции эти аргументы носят имена argc и argv. Переменная argc содержит количество аргументов программы, а переменная argv - это массив строк, содержащий сами аргументы(в том числе имя самой программы в нулевой позиции). Массив argv заканчивается элементом NULL. Благодаря этому возможны два способа перебора строки аргументов: во-первых, отсчитывать их количество в соответствии со значением argc; во-вторых, сравнивать строки в массиве argv со значением NULL. Помнил это, и всё понятно. Возникают два вопроса. 1. Не избыточен ли параметр argc ? И аргументируйте пожалуйста любой ответ 2. Возникали ли проблемы связанные с безопасностью, в результате этой избыточности ? Если да, то какие Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:16 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
когда вы видели, чтобы програмиста, пишущего на плюсах, волновали проблемы с безопасностью? Хоттите безопасности - пишите на java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:06 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
авторВозникают два вопроса. 1. Не избыточен ли параметр argc ? И аргументируйте пожалуйста любой ответ Нет. Нужно знать размер этого массива argv, кол-во элементов в нём. Можно было бы завершать его нулевым элементом (нулевым указателем), но сделали не так, а наоборот, дали ещё один параметр -- размер массива. автор2. Возникали ли проблемы связанные с безопасностью, в результате этой избыточности ? Если да, то какие Я думаю, в силу наличия ответа на первый вопрос второй вопрос бессмысленен. Там нет никаких проблем безопасности, если что. P.S. SashaMercury , мне кажется, проблемы у тебя с другим -- слишком много думаешь... Простая же вещь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:25 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
MasterZivМожно было бы завершать его нулевым элементом (нулевым указателем), но сделали не так именно так и сделали. завершается нулевым элементом, поэтому argc можно легко посчитать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Но это сейчас можно судить где они облажались, а где нет. А в ТО время не было никакого си, и хоть какой-то си, с хоть какими-то либами, был лучше, чем вообще ничего. При этом не было таких шибко умных грамотеев, как мы тут сидим, которые могли б навскидку правильно сказать, что вот так делать не надо, а вот так надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 14:10 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
chabapokА в ТО время не было никакого си В ТО время параметр argv не заканчивался NULL-ом. Это более поздняя защита от дураков. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 14:30 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Как-то мы про env забыли. А чё с ним. Опасен? Код: plaintext 1. Ах! Как неудобно! Мы совсем про Печкина забыли (с) Суровая тётка в очках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 14:48 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
maytonКак-то мы про env забыли. А чё с ним. Опасен? Уууу.. ещё как ! Можно ненароком прочитать какую-нибудь переменную окружения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 14:52 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
MasterZivSashaMercury , мне кажется, проблемы у тебя с другим -- слишком много думаешь... Простая же вещь...Правильно делает парень, что много думает и может быть наивные вопросы задаёт. Я уже давно заметил простую вещь (хотя для кого-то и не очевидную). Кто в профессии (в любой) достигает успеха? Не обязательно гении, вундеркинды и пр. Ну, конечно, такие безусловно. Но и не только такие. Также успехов в профессии достигает тот, у кого может быть скромные способности, но есть сильная мотивация в том, чтобы во всём разобраться досконально . Т.е. для таких людей «второстепенных», а уж тем более «десятистепенных» вопросов просто нет. Если надо в чём-то разобраться, то все аспекты проблемы – только первостепенной важности, в которых надо разобраться не «как-нибудь», а именно досконально. Вот такие люди и достигают успеха в профессии. Так что молодец парень, что задаёт наивные вопросы – пускай дерзает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:16 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Сергей СилкинПравильно делает парень, что много думает и может быть наивные вопросы задаёт. Дык проблема как раз в том, что он думает недостаточно много. Подумал бы ещё чуть-чуть и ответ на вопрос пришёл бы сам собой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:27 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Сергей СилкинПравильно делает парень, что много думает и может быть наивные вопросы задаёт. Конечно, правильно... Это почти шутка была... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:42 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Когда запускаю программу через командную строку, первая часть кода выводит только первые символы массива argv. Аналогичный код ниже отрабатывает нормально. Что-то упустил, или забыл. Подскажите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 09:35 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
И я удивился что argc =4, я думал что 1 элемент имя программы, плюс три параметра запуска, плюс 1 на \0. Рассчитывал на пять элементов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 09:37 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
SashaMercury плюс 1 на \0 это для защиты от выхода за пределы массива при подобном переборе. В argc этот пустой элемент не учитывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 10:15 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Больше похоже на два перевода строки как в http протоколе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 11:35 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
SashaMercury, Твоя прога: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. GCC, Linux. Код: plaintext Как ты там умудрился выводить только по одному символу -- загадка. Также два момента: Пока учишся, пиши на ANSI C и C++. Не используй MS VC навороты. Типа stdafx, типа TCHAR. const char* вместо char*. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 12:01 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Win7, vs express 2013 for desktop. Выводит то что выводит, завтра буду еще думать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2014, 15:55 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
MasterZivПока учишся, пиши на ANSI C и C++. Не используй MS VC навороты. Типа stdafx, типа TCHAR. имя главной функции (кстати, как правильно её называть, точка входа ? но фраза "переименовать точку входа не звучит, или ошибаюсь?") _tmain нужно поменять на main, и тогда всё ок. Вы правы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2014, 02:28 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
Неудобно с телефона. Но я все равно напишу. Опять об избыточности argc. Приведите пожалуйста пример когда без него никак. Когда мне не хватит нуля в конце argv. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 16:00 |
|
||
|
argc и argv
|
|||
|---|---|---|---|
|
#18+
SashaMercuryНеудобно с телефона. Но я все равно напишу. Опять об избыточности argc. Приведите пожалуйста пример когда без него никак. Когда мне не хватит нуля в конце argv. Уже ж ответили 15516618 . Ради обратной совместимости остался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2014, 17:54 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2019543]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 302ms |
| total: | 459ms |

| 0 / 0 |
