Задать вопрос
  • Как определить занятость l2tp или ikev2 кем то?

    @res2001
    WebAirStudio,
    Только в моем случае VPN нужен, чтобы обойти NAT провайдеров пользователей. Нужно открыть определенный порт. Этот порт на 1 сервере только 1. Соответственно 1 сервер может использовать только 1 пользователь. Потому что если на входящий порт придет пакет, кому из 2 пользователей он предназначается?

    На сколько понял ВПН сервер у вас будет на Ubuntu в единственном числе. Все остальное - ВПН клиенты. Для ВПН клиентов абсолютно без разницы какой они используют порт, важен порт на ВПН сервере. На ВПН сервер к одному порту может подключится много ВПН клиентов с произвольных портов. ВПН сервер сам знает какому клиенту предназначается какой трафик и маршрутизирует его (то же самое делает и стек TCP/IP без ВПН).
    На одном компьютере может быть настроено и одновременно активно несколько клиентских ВПН сессий одного типа и они даже не будут друг другу мешать при правильной конфигурации.
  • Как думаете, с чем связана ошибка и как ее исправить?

    @res2001
    Vilfredo KKK, Я же не писал "везде". Там где это оправдано/нужно/логично.
    Например str_len явно просится в size_t.
    Ошибки компилятора могут указывать на потенциальные места, где, возможно, требуется использование size_t, Но это по любому ваше решение, а не мое и не компилятора.
    Учтите, что это потянет за собой и другие изменения. Например выражение i <= str_len начнет сравнивать знаковый тип с беззнаковым, что так же вызовет преобразование типов и скорее всего компилятор начнет ругаться тут, может и еще где-то. Так что i то же просится в size_t и т.п.
    Вариант с cast можно обезопасить явными проверками, что значение в size_t влазит в int и только после этого делать cast.
  • Как получить результат из exec с русскими символами?

    @res2001
    Artem Mamaev, Особой роли не играет. По умолчанию в винде в консоли стоит кодировка cp866 - старая досовская кодировка, даже в Вин11.
    Так что нужно перекодировать в нужную вам кодировку. Как это сделать на пыхе не скажу.
    Консольная команда chcp может показывать или менять текущую кодировку. Но эта команда работает только в cmd.exe и ее изменения действуют только на текущую консоль. В вашем случае консоль запускается, видимо, в скрытом режиме и не факт, что exec запускает cmd.exe.
  • Почему типы из заголовка cstdint доступны без его включения?

    @res2001
    Ни то ни другое.
    Возможно, этот заголовок подключается где-то внутри других заголовочных файлов.
    Этот файл у вас не единственное включение в вашей программе?
  • Проблема автозапуска exe файла?

    @res2001
    Каталог по умолчанию может, конечно, зависеть от способа автозапуска. Но скорее всего он будет c:\windows\system32. Так что без прав администратора туда ничего записать не получится (да оно и не нужно).
  • Как удалить папку по шаблону в консоле windows?

    @res2001
    JaFFFar, Ок. Значит не умеет в маску. Проверил, у меня есть rmdir в составе msys2, похоже это она умеет удалять по маске, но это не стандартная утилита. Можете найти любую другую с тем же функционалом. Не тащить же msys2 ради одной утилиты. Хотя с другой стороны, там в составе весь набор линуксовых утилит и много другое.
    Но если вам нужна работа "из коробки", то лучше использовать стандартный вариант.
  • Как удалить папку по шаблону в консоле windows?

    @res2001
    JaFFFar, Команда rmdir test_* по моему должна работать.
  • Почему компилятор не предупреждает о преобразовании int в uint8_t?

    @res2001
    Qubc, Можно добавить опцию -Wconversion, должно и во втором случае появиться предупреждение.
    -Wnarrowing - активизируется через -Wall, а -Wconversion нет.
    Это я про gcc.
  • Как войти в Windows 10 после неудачной смены домашнего каталога?

    @res2001
    Попробовал переименовать через MMC

    Что это значит? Через ММС можно делать 100500 различных действий. Опишите, как конкретно вы пытались переименовывать каталог.
    Для таких случаев полезно иметь еще одного пользователя на компе с админскими правами. Подойдет стандартный администратор, который по умолчанию заблокирован.
  • Как работает (примерно) отображение таблицы виртуальных функций в отладчике msvc?

    @res2001
    Qubc, Имеете ввиду формат отладочной информации? Да, он может быть другой.
    Но ничто не мешает отладчику MS понимать формат gcc. Наоборот, может быть сложнее, т.к. у микрософта, возможно, формат закрытый.
    Я тут темой не владею, давно не использую MSVS. Возможно ошибаюсь в своих предположениях
  • Как работает (примерно) отображение таблицы виртуальных функций в отладчике msvc?

    @res2001
    Qubc, Тут может быть интересно другое - если подсунуть микросовтовскому отладчику программу собранную gcc, например. Что он будет показывать? Предполагаю, что он вообще не покажет таблицу виртуальных функций.
    Если это так, то в примере отладчик пользуется предварительно известной информацией о содержимом указателя.

    Если проведете такой эксперимент, прошу написать сюда результат. Интересно будет узнать.
    Провел бы и сам, но не использую микрософтовский компилятор, а ставить его ради эксперимента что-то лень :)
  • Что можно делать с помощью программирование кроме создание прикладных програм?

    @res2001
    Или пойти в IoT, там то же программы и программисты.
    Или в промышленную автоматизацию. Или в разработку ОС, баз данных, фреймворки разные.
    Ентерпрайз в конце концов - на каждом предприятии куча задач, которые можно и нужно автоматизировать. И у меня складывается впечатление, что в массе своей руководство предприятий (крупных и средних) этого не понимает, а следовательно простор для деятельности программистов огромный. И в нашей стране, по большому счету, все только начинается.
    Сейчас какую железку современную не ковырни везде есть процессор, который надо сначала запрограммировать.
    Конечно, там где нужно обрабатывать большие объемы и/или на большой скорости, то подключают специализированные микросхемы (ASIC), в которых уже в железе реализован алгоритм. Но алгоритм этот сначала отлаживают в "обычных" программах и только потом переносят в железо.
  • Каковы правила конвертации указателя на массив неопределенной длины в указатель на массив определенной длины?

    @res2001
    Чтоб частично снизить зависимость от компилятора в подобных "тонких" вопросах, есть смысл задавать компилятору конкретный стандарт языка и опцию -pedantic, чтоб стандарт соблюдался более полно.
    Ну и -Wall -Wextra - это само собой, и может быть даже -Werror.
  • Почему часто можно встретить отступление от структурного подхода?

    @res2001
    Qubc, Честно говоря, не увидел тут отступлений от структурного подхода. Или вы очень жестко трактуете структурный подход. Относитесь ко всем "подходам" проще - это не более чем рекомендации, чаще всего полезные, но иногда и нет. В любом случае, решать вам.
    Лично мне первый вариант больше по душе. Сам пишу так же.
    Полностью согласен с Adamos
    Если же сильно хочется единый выход из функции можно соорудить нечто такое:
    void* pop () {
      void* result = nullptr;
      do {
            if (head == 0) {
                break;
            }
            result = head->data;
            LinkVoid* oldHead = head;
            head = head->next;
            delete oldHead;
      } while(0);
       return result;
    }

    Это, конечно, больше актуально, когда проверок на ошибки несколько и/или когда надо что-то освобождать после каких-то промежуточных действий в случае ошибки.
  • Как удалить переносы строк в файле?

    @res2001
    Батники не дружат с регулярками. Команда set их не поддерживает ни в каком виде.
    Немного умеет в них findstr, но самую малость и там не стандартный синтаксис. И вам это не поможет.
    Проще всего взять утилиту, работающую с регулярками и использовать ее. Есть, например, sed портированный под винду.

    Батником удалить переносы строк можно примерно так:
    @echo off
    Setlocal Enabledelayedexpansion
     Set Filename=script.js
    Set NewFileName=file.txt
    set "St="
    for /F "UseBackQ tokens=* delims=" %%A in ("%filename%") do (
      Set "St=!St!%%A"
    )
    Set "St=%ST:<тут символ табуляции>=%"
    Echo %St%>"%NewFileName%"

    for /f читает файл по строкам, просто складываем все строки в одну переменную. На этом этапе символы перевода строки удаляются. После цикла в команде set удаляем табуляции.
    Но есть ограничения - переменные в батниках не безразмерные. Если файл будет достаточно большой, то на каком-то этапе чтения файла, переменная St переполнится. Какое ограничение на размер переменной - точно не знаю, но довольно не большое, что-то в районе 4 Кб, по моему.
  • Подойдёт ли Unreal engine для создания интерактивной презентации?

    @res2001
    Вы пытаетесь из студенческого реферата сделать научную диссертацию. Это я о сложности задачи сделать презентацию в UE без соответствующих навыков.
  • Вопрос про указатели. Правильно ли я понимаю?

    @res2001
    Не путайте объект вектора и данные вектора.
    Объект вектора - это некая дополнительная информация, необходимая классу vector для работы, например, количество элементов массива занятого данными, общий размер массива, указатель на массив, что-то еще.
    Данные вектора - это собственно массив данных.
    Так вот, данные вектора всегда лежат в куче, т.е. массив всегда выделяется динамически.
    А вот объект вектора может быть где угодно и в куче и на стеке.
    void func() {
      vector<type> name1;
      vector<type> *name2 = new   vector<type>;
     }

    В примере:
    name1 - объект вектора лежит на стеке.
    name2 - объект вектора лежит в куче, на стеке лежит указатель на объект вектора.
    Если определить вектор вне функции в глобальной области видимости, то объект не будет лежать на стеке - он будет находится в сегменте bss или data - это не стек и не куча.
  • Как решить ошибку (OS errno 2 - No such file or directory)?

    @res2001
    Возможно где-то в скрипте потерялся кусок пути:
    C: erver\data\mysql\data\
  • Можно ли создать пустую структуру, а потом её заполнить внутри функции?

    @res2001
    Acaunt, Приходите как сможете.
    Не плохо было бы увидеть задачу, которую вы пытаетесь решить.
    Сейчас мы пытаемся помочь вам в решении некоторой локальной задачи, которую вы сформулировали, пытаясь решить проблему глобальной задачи.
    Вероятнее всего, вы не правильно ставите задачу и формулируете проблему. Если вы озвучите общую глобальную задачу и покажете ваш код, ее решающий, то мы попытаемся найти реальную проблему и, возможно, поможем ее решить.
    Ваши попытки объяснить ситуацию без кода вообще никак не помогают, только еще больше запутывают.