Задать вопрос
  • Почему нет данных в хэш-таблице?

    @res2001
    Retr0Hacker, Спецификатор формата для вывода в printf типа unsigned long long в винде %llu
    Судя по тому, что значение key у вас то же выводится не верно, дело в этом.
    https://docs.microsoft.com/ru-ru/cpp/c-runtime-lib...

    Спецификаторы могут различаться в зависимости от компилятора. Поэтому в стандартной библиотеке есть заголовочный файл inttypes.h где заданы макросы с фиксированным именем описывающие формат для данного компилятора и платформы. Рекомендую использовать эти макросы, особенно для 64 битных целых, а так же типов с переменным (в зависимости от платформы) размером (size_t и его производных)
  • Какой выбрать VPN сервер для обхода блокировок?

    @res2001
    Интересная тема. Внутри вроде как тот же openvpn, но оригинально реализована маршрутизация запрещенных доменов.
  • Какая версия linux оптимальна для обучения?

    @res2001
    Vitsliputsli,
    Arch не стабильный? Это с чего вы так решили?

    Не стабильней, чем дебиан. Потому что чаще обновляется, а значит чаще завозят свежие баги.

    Устаревшее ПО, в некоторых случаях может быть проблемой, но далеко не всегда. Как правило оно там не так критично устаревшее, если брать актуальную версию дистрибутива, а не какую-нибудь позапрошлую.
    Если устаревший софт для вас проблема - вы выбираете дистрибутив с другой политикой обновления.

    Сборка софта из исходников. Когда я использовал FreeBSD все, что мне нужно было устанавливалось из портов достаточно быстро. Даже кастомное ядро собиралось за вполне вменяемое время, может быть час, давно это было. К слову, во FreeBSD из коробки есть возможность устанавливать софт и из бинарных пакетов так же как в лине.

    На счет дублирования и бэкапов - полностью согласен. Но ставить на сервер любой не стабильный дистрибутив - только если есть очень веские причины для этого.

    Я, собственно, ни за какой дистрибутив не топлю. Сам использую Убунту, меня устраивает. Если вдруг понадобится переустанавливать ОС, то скорее всего выберу другой дистрибутив, просто что бы посмотреть что-нибудь другое. Тот же arch, может быть.
    В ответе написал, что для целей автора, выбор дистрибутива не принципиален.
  • Какая версия linux оптимальна для обучения?

    @res2001
    Drno, arch - да, слишком не стабильный.
    А гентуу - есть любители.
    Мне в свое время пришлось плотно использовать FreeBSD на серверах, а это достаточно стабильная система, так что подход гентушников мне абсолютно понятен. Не вижу больших проблем использовать на сервере, если ты умеешь с ним управляться.
  • Что делать, если появляется непонятная ошибка после запуска c++ кода?

    @res2001
    В чем смысл настолько большой многопоточности?
    Почему для my_thread1 не используешь join? Оно тут напрашивается. Если бы делал, то шанс получить адекватное значение connfd без синхронизации увеличится, особенно если объявить connfd как volatile. Да и вообще любой поток должен быть либо join, либо detach иначе остатки потока не удаляются из системы даже после его завершения.
    В целом подобное разбиение на потоки смысла не имеет. Т.к. каждая операция внутри потока синхронна и следующий поток ждет предыдущего, то в итоге все происходит последовательно, никакого параллелизма. С тем же успехом все это можно просто вызывать последовательно в main, без потоков.
  • Делаю проект в GNS3, у человека кто написал пост такие данные на ПК 2 Ip 192.168.1.11 /24 geteway 192.168.2.1 (Вопрос как это возможно)?

    @res2001
    Когда-то встречал подобную реально работающую конфигурацию. Тогда меня это то же сильно удивило.
    Вроде как адрес шлюза не обязан быть в той же IP сети, что и адрес хоста. Т.е. такой вариант вполне возможен.
    Когда хост должен отправить пакет через шлюз, он просто подставляет MAC адрес шлюза в пакет и отправляет его, IP адрес шлюза по большому счету не используется. Конечно, и указанный шлюз и хост должны быть в одном широковещательном домене, для того что бы хост мог по ARP получить МАС шлюза.

    Все это мои предположения. Какого-то документального подтверждения своим домыслам не встречал.

    Думаю, что стоит избегать таких конфигураций.
  • Почему не монтируется диск в WSL windows?

    @res2001
    Павел, Ну и что. Требования соблюдены для данного документа, эти требования не касаются другого документа.
    По вашей ссылке, где используется --mount, есть свои требования и вот там они не соблюдены.
  • Почему не монтируется диск в WSL windows?

    @res2001
    Павел, Что вы понимаете под сборкой? На сколько я понял у вас версия винды не соответствует минимальным требованиям, поэтому команды --mount просто нет. Для начала нужно обновить винду до требуемой версии.

    Когда появился WSL2 у меня установленный ранее линукс не хотел обновляться до WSL2 по инструкции. Хотя сама винда обновилась до нужной версии нормально. Пришлось полностью снести WSL и заново установить WSL и линукс уже с версией WSL2.
    Команда wsl -l -v покажет подробные сведения о вашей установке, в т.ч. и используемую в дистрибутиве версию WSL. При установленном WSL2 дистрибутив может работать и как WSL1. Теоретически его можно переключить на WSL2, но это не всегда срабатывает, как выяснилось.
    Подробней смотрите тут:
    https://docs.microsoft.com/en-us/windows/wsl/install
    https://docs.microsoft.com/en-us/windows/wsl/insta...
  • Почему не монтируется диск в WSL windows?

    @res2001
    Павел, Судя по тому что пишут по вашей ссылке для этой операции требуется Windows 11 Build 22000, смотрите раздел Prerequisites.
    У меня в Вин10 в странице справки wsl ничего не сказано про параметр --mount. Возможно еще не знает о нем. С wsl регулярно такие штуки происходят - проект активно развивается.
  • Как найти нужный каталог в cmd?

    @res2001
    Добавлю.
    Так как пробелы после значения в set то же имеют значение :), то часто используют кавычки для того, что бы четко обозначить что должно присвоиться переменной:
    set "disk=C:\"
    Даже, если после кавычек случайно появится лишний пробел или таб, то он не присвоится переменной
  • Как перегрузить оператор так, чтобы принимать std::endl в своём потоке вывода?

    @res2001
    Надо наследовть class log от ofstream и использовать вывод базового класса, а не _file.
  • Почему содержимое пакетов в Wireshark не совпадает с описываемым в спецификации протокола IP?

    @res2001
    gd1xza, Когда начал писать, ответов еще не было. Если бы больше никто не ответил, то автору уже было бы за что зацепиться и дальше самому раскрутить вопрос.
  • Почему при умножении матриц, вводя разные значения при каждом новом запуске программы я получаю одни и те же размеры(не правильные)?

    @res2001
    marlaaa,
    CreatMatr должен записывать в файл все значения в виде матриц, а потом их надо считать ReadMatrix

    Верно, вот только в CreatMatr ты не пишешь в файл значения n, m, l, а передаещь их в ReadMatr в виде параметров. Так что ReadMatrix не может корректно прочитать файл, если у него не правильные n и m,

    Тебе надо в main значения n, m, l сделать массивами размером k. И на каждой итерации вызова CreatMatr передавать ссылки на следующие элементы массива. (Я бы сделал структуру, типа той, что описывал выше, и сделал один массив структур, а не 3 массива интов.)
    В следующем цикле так же используй элементы массива для передачи в ReadMatrix.

    Вообще, не понятно зачем ты сначала пишешь эти файлы, а потом их читаешь. Сгенерировала матрицу в памяти и сразу отдавай ее в MatrixProduct. Можешь генерировать сразу вектор, а не сырой массив, как сейчас. Зачем эта возня с промежуточным файлом?
  • Почему содержимое пакетов в Wireshark не совпадает с описываемым в спецификации протокола IP?

    @res2001
    Во первых первый байт - 0x28H, в битах это будет 101000, итого первые четыре бита - 0000, хотя протокол - IPv4

    Двумя строками ниже подчеркнутого посмотрите написано 0100 = Version 4. То что надо.
    В HEX dumpe, по всей видимости, вы смотрите уже поле данных IP пакета. Возможно надо взять вышестоящий заголовок. Или где-то включить отображение IP header. Точно не скажу, давно уже не держал в руках сниффер.
    0х0800 - это видимо значение поля EthType вышестоящего заголовка Ethernet Frame, значение как раз соответствует IPv4.
  • Нужен батник для копирования по сетевому диску только последних (новых) файлов?

    @res2001
    o_krytS, Что написано, то и копирует. pushd просто меняет текущий каталог. После двух pushd текущим становится каталог из последней команды, этот каталог и копируется.
    Вам надо выполнить первую pushd, затем копирование и popd, затем вторую pushd и снова копирование и popd.
    Можно загнать в цикл или процедуру, что бы не двоить код.
  • Как конвертировать указатель PWSTR в указатель на string (c++)?

    @res2001
    Возможно, стоит подумать использовать wstring, а не string?
  • Почему при умножении матриц, вводя разные значения при каждом новом запуске программы я получаю одни и те же размеры(не правильные)?

    @res2001
    marlaaa,
    убрала утечку памяти и в CreatMatr сделала return n,m,l

    Не убрала и не сделала!
    По утечкам: в С++ каждому вызову new должен соответствовать вызов delete. Посчитай сколько раз у тебя вызывается new и сколько delete. Так что утечки остались.

    В С++ нельзя в return вернуть несколько значений через запятую. В таком случае вернется последнее перечисленное значение. Запятая - это оператор, можешь почитать в учебнике про него или тут: https://en.cppreference.com/w/cpp/language/operato...
    Чтоб вернуть 3 значения (n, m, l) тебе надо упаковать их в структуру и возвращать структуру. Что-то типа такого:
    struct nml_s {
     int n, m, l;
     nml_s(int _n, int _m, int _l) : n(_n), m(_m), l(_l) {}
    };
    ...
    nml_s CreatMatr(int n, int m, int l)
    {
       ...
       nml_s nml(n, m, l);
       ...
       return nml;
    }

    Другой вариант передавать не значения n, m, l, а ссылки на них. Тогда CreatMatr будет выглядеть так:
    void CreatMatr(int &n, int &m, int &l)
    {
     ...
    }

    В таком случае возвращать ничего не нужно, т.к. изменение значения ссылки ведет к изменению значения на которое ссылается ссылка :)

    Следующий момент. Предположим ты разобралась с возвратом значений из CreatMatr, но не достаточно просто их вернуть. Сейчас в CreatMatr ты как-будто их возвращаешь, но возвращенные значения нигде не сохраняются и в дальнейшем не используются (они просто пропадают).
    Если будешь возвращать через ссылки, то n, m, l в main автоматически модифицируются после возврата из CreatMatr (формулировка не верна, но это не принципиально сейчас). Если возвращать через структуру, то структуру надо куда-то сохранить и затем использовать то что сохранено.

    Еще один момент. Ты вызываешь CreatMatr несколько раз, но сохраняешь (пока что не сохраняешь) набор значений n, m, l только один - последний. А как же все предыдущие? Они не нужны?
  • Разграничить по подсетям и VLAN?

    @res2001
    Добавлю.
    В контроллере можно обойтись и одним сетевым адаптером. Если адаптер поддерживает VLAN, то можно в этот единственный порт на коммутаторе пустить все 4 тегированных VLAN. Разруливать VLANы уже непосредственно на контроллере - там создать 4 виртуальных адаптера (по количеству VLANов) с помощью драйвера сетевого адаптера, дальше все как описано.

    В разных VLAN лучше использовать разные, не пересекающиеся IP подсети. Т.к. использование одной и той же IP подсети в разных VLAN добавит вам проблем, в случае, если между подсетями нужен обмен трафиком (обычно это так и есть). Даже если вам сейчас кажется, что никакого обмена никогда не будет, то все равно сделайте разные подсети, т.к. обмен рано или поздно все равно понадобится.
    Ваш контроллер, который подключен ко всем VLANам и имеет в каждой подсети адрес может выступать шлюзом для обмена трафиком между подсетями.
  • Почему отваливается wi-fi адаптер?

    @res2001
    Вячеслав Грачунов,
    Это ноут, он же должен быть рассчитан по мощности

    Нет. Откуда производитель может знать что вы воткнете в порты компьютера. В ноутах рассчитывают на какую-то среднестатистическую нагрузку, чтоб удовлетворить большую часть пользователей. Кроме того нагрузка еще зависит от того, что подключено в другие порты.
    Вообще это не обязательно вариант с нехваткой мощности БП. Привел его как одну из возможных причин.

    В ноутах аккумулятор может сглаживать недостаток мощности БП, вообще надо смотреть на мощность аккума в случае ноутбука. Но если аккумулятор дохлый, то он уже большой роли не играет и все ложится на БП.

    Посмотрел, у моего старенького ноута БП на 90 Вт. Ну как бы не много, мягко говоря. Запаса прочности особого нет. Какой мощности аккум не знаю - надо корпус вскрывать.