• Почему constinit помогает решить проблему static order initialization fiasco?

    @res2001
    В runtime уже нет единиц трансляции. Там есть секции, точнее секции есть в исполняемом файле, а в runtime уже по сути и их нет.
    Обычно весь код находится в одной секции .text, инициализированные данные в секции .data, не инициализированные данные в .bss, константы в .rodata.
    Загрузчик ОС помещает секции из исполняемого файла в разных блоках памяти с разными свойствами (например для text разрешено выполнение кода, для остальных нет, rodata - только для чтения).
    Все загружается в память еще до старта первой команды программы.
    Написано
  • Почему такая ошибка странная?

    @res2001
    Похоже, что
    friend std::ostream & operator<< (std::ostream & os, const xbString & s);
    определен где-то в другом месте, которое вы не подключаете в сборку.
    Написано
  • В чем ошибка кода?

    @res2001
    1. Функции cubeX не перегруженные
    2. В Си нет перегрузки, такой же как в плюсах. Уберите Си из тегов (к тому же и код представлен плюсовый, а не сишный). В Си можно сделать аналог перегрузки, используя макрос _Generic. Но _Generic не поддерживается С++.
    3. Ваши функции cudeX должны возвращать значение, но в случае не выполнения условия никакое значение не возвращается - это ошибка компиляции.
    Написано
  • Как настроить клиент и server openvpn на одной машине с Ubuntu?

    @res2001
    Павел, Трафик надо маршрутизировать на всех участниках обмена.
    Написано
  • Почему шлюз пингуется, а остальная сеть нет?

    @res2001
    RoffDaniel, Я не использовал pfSense, но openvpn он везде openvpn.
    ЛВС у вас имеет адрес сети 10.15.0.0/16?
    При подключении клиента к ВПН с такими настройками на стороне клиента появляется маршрут к сети 10.15.0.0?
    Написано
  • Почему шлюз пингуется, а остальная сеть нет?

    @res2001
    RoffDaniel, Вы используете NAT или маршрутизацию? Вам тут логично использовать маршрутизацию.
    В таком случае после подключения клиента на нем должен быть маршрут к сети за сервером. Проверьте это с помощью route print например.
    Кроме того фаерволы на клиенте, на шлюзе и на компах в сети должны пропускать ВПН пакеты.
    Написано
  • Как именно должжна работать функция SetCursor?

    @res2001
    TRIG, Для начала вы должны получить корректный HCURSOR, тогда и SetCursor отработает как надо. Я думаю, что ошибка в LoadCursor.
    Посмотрите пример: https://learn.microsoft.com/ru-ru/windows/win32/me...
    Написано
  • Как настроить клиент и server openvpn на одной машине с Ubuntu?

    @res2001
    Павел,
    Я просто не совсем догоняю как сделать что бы openvpn server перенаправлял трафик

    Сам по себе OpenVPN никакой трафик никуда не перенаправляет. Этим занимается стандартный стек TCP/IP ОС и регулируется это стандартными настройками маршрутизации, фаервола и т.п.
    В некоторых случаях в конфиг openvpn сервера можно добавить команды типа push "route ..", которые будут выполнены автоматически на стороне клиента при подключении. Эти команды конфигурируют маршрутизацию TCP/IP, а не openvpn.
    Написано
  • Как именно должжна работать функция SetCursor?

    @res2001
    LoadCursor может вернуть NULL в случае ошибки. Вы не проверяете это.
    Сам код ошибки можно получить, как обычно в WinAPI, используя GetLastError. Получить текстовое описание ошибки по коду можно через FormatMessage, пример смотрите тут.
    Написано
  • Почему при запуске скрипта через планировщик, он не отрабатывает??

    @res2001
    При запуске программы из планировщика меняется окружение запускаемой программы:
    1. программа может запускаться из планировщика от имени другого пользователя, у которого нет прав на требуемые ресурсы. У вас в скрипте используется переменная окружения SecureKeyMail, она может не существовать у этого пользователя.
    2. изменяется текущий каталог запуска. В скрипте вроде это нигде не используется, упомянул на всякий случай.
    Написано
  • Какой выбрать протокол для подключения сетевого диска вне локальной сети?

    @res2001
    Есть еще sshfs. Для винды то же есть свободная реализация, позволяет монтирование. Это, собственно, вариант работы с scp или sftp.
    Написано
  • Не могу понять почему не работает USER тред?

    @res2001
    jcmvbkbc, Но он же явно хотел в monitor_thread переключать контексты.
    А сейчас он в setcontext установил контекст из одного потока, и даже если будет использовать потом swapcontext в monitor_thread в другом потоке, то что будет когда переключится на этот контекст не понятно.
    Но не суть. Все равно программа завершается слишком быстро и видимо ничего не успевает произойти.
    Написано
  • Как использовать потоки в современном C++ в приложении на основе цикла событий?

    @res2001
    Andrey_Epifantsev, В std::future есть wait_for/wait_until, где можно задать промежуток времени в течение которого ждать. Задайте там 0 (или что там минимально возможно), чтоб только проверить состояние задачи.
    Но для вашей задачи, скорее всего, реально проще проверить, например, атомарный флаг завершения, чем разводить канитель с таймаутами во future.
    На мой взгляд, std::async/future подходят для короткоживущих потоков, если у вас долгоиграющий, то это, видимо, не лучший вариант.
    Вообще относитесь ко всем таким утверждениям как к рекомендациям, не более того. Всегда найдутся задачи, которые не укладываются в какие-то стандартные рамки. Впрочем, "голые" потоки такие же стандартные, но это универсальный механизм, на котором основаны все другие варианты.
    Написано
  • Как отключить видимость клиентов друг другу?

    @res2001
    client-to-client лишь ускоряет "видимость". Помимо выключения этой опции надо блокировать не нужные пересылки и в фаерволе ОС.
    https://serverfault.com/questions/736274/openvpn-c...
    Написано
  • Как решить проблему с Segmentation fault?

    @res2001
    fokin_nikolay1989, Читайте параметры из командной строки - смотрите функцию getopt (getopt_long). Примеров использования в интернете много.
    Исключения - просто проверяете в теле цикла и пропускаете файл попадающий под условие.
    Написано
  • Выход из спящего режима при подключении RDP, как это работает?

    @res2001
    Интересно. Но получается нужно делать статический МАС в arp компа с которого хотим будить, чтоб это работало. Тогда по идее любое TCP соединение способно разбудить ПК.
    Proxy-arp наверняка кеширует МАСи, но рано или поздно кеш все равно протухнет.
    Написано
  • Как решить проблему с Segmentation fault?

    @res2001
    Ну как бы еще и max_size должен быть double. Вы же пишите на Си, тут никто вам соломки не постелит.
    Вам лучше max_size находить в целых в байтах, и только в самом конце его переводить в double перед самым выводом. Т.е. max_size пусть остается long long и в нем храните байты (а не Гб). Перед выводом вычисляете max_size в Гб и выводите:
    printf("%.2f GB\n", max_size / 1073741824.0);
    Написано
  • Как решить проблему с Segmentation fault?

    @res2001
    Все числа целые, используется целочисленное деление, в этой операции остатка нет - число же целое.
    Конвертируйте в double и выводите результат как double.
    Можно так:
    max_size = file_stat.st_size / 1073741824.0;
    Написано
  • Как решить проблему с Segmentation fault?

    @res2001
    fokin_nikolay1989,
    как сконвертировать результат вывода в Tb?

    1 Тб = 1024 * 1024 * 1024 * 1024 байт
    Поделите число в байтах на (1024 * 1024 * 1024 * 1024), получите Тб.
    Написано
  • Как решить проблему с Segmentation fault?

    @res2001
    fokin_nikolay1989, Как минимум можно вывести на экран путь после его формирования и убедится глазами, что такой файл есть в файловой системе.
    Так же можно воспользоваться отладчиком.
    Написано