Comments 9
Всегда хотел научиться писать на C++
Подскажите, есть ли какие материалы, где можно постепенно, по шагам изучить минимальный "стек". Вот какой путь
1. Умею собирать и запускать std::cout << "Hello World!\n"; на Linux
2. Умею собирать open-source- проекты через make install
...
Я здесь :(
...
N-1. Умею выполнять кросс-компиляцию для SoC Type: MediaTek MT7620A Linux version 4.14.215 gcc version 7.5.0 OpenWrt 19.07.6
N. Собрал и запустил утилиту upload-a файлов из локальной папки на FTP-сервер
Так вам надо не учиться писать на С++, а учиться собирать чужие проекты. Это намного проще. Достаточно прочитать документацию по autotools, cmake, ninja, whatever... Будут возникать вопросы - задавайте на StackOverflow или в телеграм каналах.
Прям для вас: https://habr.com/ru/specials/726724/
Здоровая критика про пинг:
неплохо бы переменным sent, received присваивать начальные значения;
при разборе командной строки возможен крэш, если, например, указать ключ -с без числа. С остальными - аналогично;
если в командной строке указать несколько аргументов, но не указать destination, то может быть крэш по содержимому ip;
устанавливать опции сокета после отсылки каждого пакета? Может лучше один раз до всяких отсылок?
лучше добавить контроль результата при установке опций сокета - вдруг не установилось?
если при получении ответа пришло меньшее количество байт, то далее будет работа с мусорными (предыдущими) данными;
лучше не миксовать C подход (usleep, "\n") и C++ (chrono, endl);
в выводе help можно указать дефалтовые значения для параметров (10 пакетов и т.д.);
cout << "'####::'######::'##::::'##:'########::'##::::'##:'########:::'######::\n" - Э-э-э-м ... безымянная гордыня? Может лучше фамилия, имя, год создания?
if (len & 1) {
Нечётный байт наголо добавляется в чексуму?
Простите! А где здесь C++? Все написано в сишном стиле. Мне кажется эту статью надо было определить в C, а не в C++ раздел.
C++, ping и traceroute