Задать вопрос
  • Как удалить тысячи вложенных каталогов?

    @res2001
    rPman, Ограничение в 260 символов сейчас это уже во многом кривые руки программистов. Т.к. все Unicode функции WinAPI, работающие с файлами принимают пути до 32Кб длиной. Старые ASCII функции по прежнему имеют это ограничение в 260 символов. Т.е. по факту достаточно использовать в программе Unicode функции и этого ограничения не будет. Кто знает, какие функции для работы с файлами используются внутри cmd.exe :)
    https://docs.microsoft.com/ru-ru/windows/win32/fil...

    Azat2015, Файлов или каталогов с не стандартными символами в имени нет внутри этих подкаталогов?
    Помнится сталкивался с ситуацией, что какая-то программа создала файлы с неподдерживаемыми символами в имени и ничем эти файлы не удалялись. Удалил с помощью Ubuntu live CD, как советовал Alexander , там поддержка NTFS есть из коробки.

    Кстати, Far manager, возможно, сможет удалить вашу портянку каталогов. Я когда-то сталкивался с похожим случаем, тогда удалилась вся ветка каталогов достаточно просто. Как именно удалял уже не помню. Возможно удалил с помощью Far, т.к. я его активно использую.

    Еще вариант - попробуйте в cmd с помощью cd перейти куда-нибудь в середину вложенности этой ветки каталогов и оттуда удалить все вышестоящие каталоги с помощью rmdir. Или то же самое в Far.
  • Как удалить тысячи вложенных каталогов?

    @res2001
    Попробуйте из проводника удалять зажав Shift - это удалит каталог полностью без возможности восстановления (не будет помещать в корзину).
    Вообще из командной строки с помощью rmdir должно быть возможно удалить каталог. Задайте опцию /s для команды.
    Смтори rmdir /?
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Дмитрий,
    я из сотой попадаю на файловую помойку с адресом 1.2

    Значит с маршрутизацией все нормально - маршруты везде прописаны.
    Не совсем понятно, что за "удаленка". RDP?
    Попробуйте мой совет выше с отключением фаерволов (только для теста, конечно). Если с отключенными на обеих сторонах фаерволами вы будете нормально подключаться, значит нужно правильно настроить правила фаерволов. Так же возможно вмешивается фаервол на шлюзе.
    Что бы попасть на шлюз из 1ой подсети, вы должны использовать адрес шлюза из этой же подсети (у него же адреса в обеих подсетях есть).

    Для проверки доступности компа проще всего использовать утилиту ping:
    ping <IP адрес удаленного компа>
    Утилита несколько раз пытается проверить доступность удаленного IP с помощью пакета ICMP ECHO Request, ждет ответа на запрос и печатает отчет об этом. Если пинги проходят, то и любой другой трафик будет проходить - вопрос только в настройке фаерволов. Ответы на пинги отправляет ядро ОС (т.е. не требуется что бы на удаленном компе было что-то запущено, кроме ОС), этот функционал встроен в стек TCP/IP, но как ответы так и запросы могут быть заблокированы фаерволом.
  • Как подключиться по ip из одной подсети в другую?

    @res2001
    Руслан Федосеев,
    У вас на шлюзе не прописана маршрутизация.

    Думаю, что это не совсем так, т.к. автор пишет:
    с ПК 100й подсети я могу попасть по IP в 1ю подсеть

    Дмитрий, Прокомментируйте подробней этот момент. Что значит попасть в 1 подсеть? Как вы туда попадаете? Пингуете или еще что? Какие конкретно адреса пингуете и откуда?

    Возможно тут просто правила фаервола блокируют трафик. Попробуйте отключить фаерволы на обоих тестируемых компах (из разных подсетей) и проверьте прохождение пингов в обе стороны.
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, Какие полные настройки? Настройки обычные для последовательного порта: скорость, количество бит данных, количество стоповых бит, проверка четности, контроль потока.
    пакеты идут не попорядку

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

    Что-то я сомневаюсь, что в ttyACM есть известные не исправленные баги. Драйвер далеко не новый, существует в ядре давно. https://www.kernel.org/doc/html/latest/usb/acm.html
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, В линуксе все драйвера в ядре. Либо встроены, либо в виде подгружаемых модулей.
    На сколько я знаю, драйвер для ttyACM встроен в ядро, так же как и для ttyUSB и ttyS.
    Так что смена драйвера - это только смена ядра.
    Что за проблема в драйвере?
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, Используйте любую программу, которая умеет работать с последовательными портами, например minicom, или что-то еще, их много.

    Можно даже так: cat </dev/ttyACM0
    Но, конечно, порт в системе должен быть правильно сконфигурирован. Программы общего назначения сами не умеют правильно конфигурировать порт, поэтому вы должны об этом позаботится.
    Тот же minicom сам может сконфигурировать порт через свои настройки/опции.
  • Как правильно передавать функцию в качестве параметра?

    @res2001
    Matvey_Mt, Верно.
    Даже если вы попробуете передать автоматический массив, то все равно передается только указатель:
    #define N   10
    void foo(int arr[N]) {}
    ...
    int array[N];
    foo(array);

    Но с автоматическими массивами надо быть аккуратным - имя такого массива не всегда ведет себя как указатель, в некоторых случаях оно ведет себя как массив. Например sizeof(array) из примера выше вернет полный размер массива в байтах, а не размер указателя.
  • Как использовать make на windows?

    @res2001
    voproser45654, В качестве окружения рекомендую связку msys2 + mingw.
    msys2 представляет собой линуксовую командную строку и пакетный менеджер с помощью которого можно установить кучу утилит и библиотек из пакетов. С его помощью ставим окружение для сборки, которое включает в себя в т.ч. и make, и mingw (компилятор).
    Если добавить соответствующие пути в виндовую переменную окружения PATH, то все утилиты будут доступны из командной строки винды. Если добавить виндовые переменные окружения MINGW_HOME и MSYS_HOME (смотри документацию msys2), то msys и mingw увидят разнообразные IDE.

    Другой вариант - WSL. Это полноценная виртуальная Линукс машина, предоставляемая микрософт. Все что собрано в WSL может быть запущено только в WSL. Но в винде много чего сделано для того что бы работа с WSL была достаточно прозрачна для пользователя. Не так давно появилась возможность запускать полноценное графическое окружение внутри WSL и иметь нормальный рабочий стол линукса, параллельно с раб.столом винды. Запускать WSL команды можно и из виндовой командной строки, через утилиту wsl))
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Как я и писал выше в такой конфигурации адрес подсети: 172.22.24.0, маска 255.255.248.0.
    Этот адрес и маску указывайте в настройках openvpn.
    PS: Чтоб вычислить адрес подсети надо сделать операцию побитового И над IP адресом и маской.
    PPS: Но что-то я сомневаюсь, что вам реально требуется такая маска. Обычно для разбиения на подсети выбирают такой диапазон адресов (адрес и маску подсети), в который бы помещалось необходимое количество узлов + 10-20% на расширение. Самая распространенная подсеть с маской 24 (255.255.255.0), она достаточно маленькая, ее удобно запоминать и просто вычислять адреса узлов и подсети.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Видимо из-за сочетания адреса подсети 28.0 и маски 248.0.
    Дело в том, что для адреса подсети 28.0 маска 248.0 не подходит.
    Для такой маски адрес 28.0 - это адрес узла, а не подсети. Для подсети в таком случае адрес 24.0.
    Если адрес подсети реально должен быть 28.0, то маска должна быть 252.0.

    Что у вас фактически на камерах настроено? Какой диапазон адресов из этой подсети реально используется?

    Для справки - в подсети с маской 248.0 - может быть до 2048 узлов. Для подсети 252.0 - 1024 узла.
    Вам реально требуется такое количество узлов (камер) в этой подсети?
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Маршрут на месте, лишних маршрутов нет.
    Теперь пинги с сервера на компы в сети за клиентом должны проходить.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков,
    Есть еще 2 впн клиент с такой же подсетью 192.168.100.1(роутер) , но там в ccd я не чего не прописывал кроме ip 10.8.0.3.

    Это не считается. В данном случае маршрут существует даже без запущенного openvpn. Значит он появился откуда то вне openvpn.
    Если route delete маршурт удалит успешно и после перезагрузки он не появится опять, то не важно откуда он взялся. Иначе, придется искать, откуда растут ноги у этого маршрута.

    Кстати, если потребуется доступ к сети за этим вторым клиентом, то придется как-то решать вопрос с пересекающимися подсетями. Обычно правильней всего - изменить адресацию в одной из сетей, но это может быть не всегда возможно.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Маршруты не удаляются с помощью route delete 192.168.100.0?
    Если сразу посмотреть таблицу маршрутизации после команды? Сама команда ошибки выдает?
    На сервере нет сетевых адаптеров с вторичным адресом из сети 192.168.100.0?
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    res2001,
    192.168.100.255 255.255.255.255 On-link 192.168.1.245 291

    Этот маршрут то же надо удалить.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Завершите openvpn на сервере полностью.
    Посмотрите таблицу маршрутизации.
    Если остались маршруты для сети 192.168.100.0, то удалите их с помощью route delete.
    Перезагрузите винду, проверьте таблицу маршуртизации еще раз. После перезагрузки и до старта openvpn маршрутов к 192.168.100.0 не должно быть.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Маршрут на сервере добавился:
    192.168.100.0 255.255.255.0 10.8.0.2 10.8.0.1 281

    Но помимо этого там же есть еще 2 маршрута:
    192.168.100.0 255.255.255.0 On-link 192.168.1.245 36
    192.168.100.255 255.255.255.255 On-link 192.168.1.245 291

    Как они туда попали?
    У первого из них метрика (последняя цифра в строке) 36, а у маршрута на 10.8.0.1 метрика 281, т.к. маршруты оба маршрута для одной и той же сети, то для выбора используется метрика - выбирается маршрут у которого метрика меньше.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, 1. В ccd должна быть опция iroute, а в основном конфиге сервера route! Так сделано, потому что фактически маршрутизация разделена на 2 части - одна происходит в ОС (route), а вторая в openvpn (iroute).
    2. Судя по логу маршрут добавляется сразу после старта сервера, еще до подключения клиента. Так и должно быть:
    Wed May 4 15:48:09 2022 C:\Windows\system32\route.exe ADD 192.168.100.0 MASK 255.255.255.0 10.8.0.2
    Wed May 4 15:48:09 2022 Route addition via service succeeded

    Посмотрите таблицу маршрутизации сразу после старта сервера и после подключения клиента.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Последний вариант конфига сервера, ccd клиента и логи с сервера и клиента с моментом подключения в студию.
  • По какой причине несовместимость библиотек?

    @res2001
    Вадим Ушаков, Объектные файлы самого проекта то же посмотри objdumpом. Там что с форматом/разрядностью?
    Если все совпадает, то остается только вариант, что ld используется от другой платформы. Возможно используется родной вместо нужного.
    Кросс-компиляция как-то настраивается в makefile? Обычно нужно задавать свои варианты компилятора, линковщика и других сопутствующих утилит в этом случае.
    Если не задавать? то будут использоваться стандартный компилятор и линковщик и итоговый исполняемый файл будет в формате текущей платформы, т.е. какой-нибудь elf64