Задать вопрос
  • На каком режиме работают выполняются сервисы Пользовательский режим или на Режиме ядра?

    @res2001
    Developer, ex-admin
    В kernel mode работает только само ядро и драйверы устройств. Все остальное работает в user mode.
    Любая программа, совершая системный вызов, переключается в kernel mode на время выполнения системного вызова. Системных вызовов все программы совершают много и регулярно.
    Ответ написан
    1 комментарий
  • C++ WinForm Как правильно вывести массив структур переданный через указатель?

    @res2001
    Developer, ex-admin
    base[ind].birth.month
    Вообще и остальные поля нужно выводить через точку.
    Кроме того, если приведенный код ch_kol() - это реально все что есть в функции, то это не верно. Вы в ch_kol возвращаете указатель на локальную переменную, как только отработает return этот указатель станет не действиетльным, т.к. массив base перестанет существовать после выхода из функции.
    Подобное определение массива baseProgr base[max];, если max не константа приводит к объявлению массива переменной длины (VLA). Строго говоря С++ не поддерживает VLA, т.к. это фишка Си. Но некоторые компиляторы (gcc) при включенных расширениях (по умолчанию включено) позволяют их использовать. Но этот код становится не переносимым, т.к. при других опциях компилятора или на другом компиляторе код может не собраться.
    Ответ написан
    4 комментария
  • Как правильно использовать свои опции в cmake?

    @res2001
    Developer, ex-admin
    1. Первый параметр при запуске cmake - путь к файлу CMakeLists.txt, который нужно обработать.
    Обычно процесс сборки с помощью cmake у меня выглядит примерно так:
    Создаю в произвольном месте пустой каталог для сборки проекта, перехожу в него, там выполняю: cmake <путь к cmakelists.txt>
    В этом случае каталог с исходниками не заполняется не нужными там артефактами сборки.

    2. опции в cmake передаются так cmake ... -D<имя опции>[=значение]
    Т.е. -D - это ключ за которым следует имя опции. Теперь сравните с тем как вы это применяете.
    Синтаксис похож на определение макросов в командной строке компиляторов C/C++.
    Ответ написан
  • Как правильно сделать комплексное преобразование Фурье в python?

    @res2001
    Developer, ex-admin
    Использовать numpy.fft.fft().
    Можно использовать с действительными числами, преобразование все равно будет комплексным.
    Если уж сильно хочется чтоб было все комплексное - просто добавьте нулевую мнимую часть к вашим действительным числам. Это можно сделать например сложив ваш действительный массив с 0j.
    Ответ написан
  • Как не собирать повторно зависимость при сборке проекта в cmake?

    @res2001
    Developer, ex-admin
    Ответ в комментариях тут.
    Ответ написан
    Комментировать
  • В чем отличие инструментов для отладки - step и step into?

    @res2001
    Developer, ex-admin
    Если в текущей строке вызов функции, то step не зайдет в функцию, т.е. функция выполнится вне отладчика и следующей отлаживаемой строкой будет строка следующая за вызовом функции.
    step into зайдет в функцию и следующей отлаживаемой строкой будет первая строка кода в функции.
    Ответ написан
    Комментировать
  • Как правильно настроить кодировку для std::ifstream и std::string?

    @res2001
    Developer, ex-admin
    Используйте wstring и широкие символы вместо string и char.
    Ответ написан
    2 комментария
  • Что лучше будет: - железный впн или программный?

    @res2001
    Developer, ex-admin
    Вы должны понимать, что "железный" в вашем примере - это не ВПН реализованный в "чипе". В микротиках есть свой процессор, на котором крутится операционная система, ВПН там реализуется точно так же как и программный вариант, даже с высокой вероятностью используется то же самое ПО, которое вы бы использовали в программном варианте. Но часто производители железок модифицируют ПО под свое понимание проблемы и какой-то функционал, который работает в стандартном варианте в железке работает не так или не работает вовсе. У некоторых производителей железок есть своя собственная реализация ВПН.

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

    Впрочем в "программном" варианте можно то же прикрутить интерфейс и возможностей по настройке больше, но это потребует более глубоких знаний.

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

    На счет белых IP - для ВПН вам понадобится хотя бы 1 белый статический адрес, на нем вы развернете ВПН сервер. Можно использовать схему динамический белый адрес + DDNS, но это так себе идея. ВПН клиенты могут использовать серые адреса. Под ВПН сервер вы можете арендовать VPS или развернуть его где-то на своей площадке где уже есть белый адрес.
    Ответ написан
    Комментировать
  • Как найти файлы с определенными свойствами?

    @res2001
    Developer, ex-admin
    dir /a-ds /b /s
    Справка по dir: dir /?
    Ответ написан
    Комментировать
  • Как получить список файлов-symlink'ов из директории?

    @res2001
    Developer, ex-admin
    В команде dir ключ /al заставляет ее выводить только ссылки. Ключ /a-d - только файлы.
    Совместить их можно так:
    dir /a-dl /b /s C:\way\
    Остальные ключи посмотрите в справке.

    PS: Спасибо за вопрос. Раньше это как-то не нужно было. Открыл для себя новые возможности dir :)
    Ответ написан
    Комментировать
  • Как вызвать класс комплексное число?

    @res2001
    Developer, ex-admin
    Для получения 9+12i надо вызвать computePolynomial(), его результат вывести на экран.
    Ответ написан
  • Поддерживает ли HP smart array p410 hotswap?

    @res2001
    Developer, ex-admin
    В принципе поддерживает. Но его надо предварительно соответственно настроить.
    Настройка может включать в себя выделение spare дисков под автоматическую замену, и указание, что новые диски делать spare дисками.
    В таком случае при выходе из строя одного из дисков автоматически включается в работу spare диск, на него происходит автоматический ребилд. При этом вышедший из строя диск выводится из работы и на нем загорается светодиод. Вышедший из строя диск можно спокойно вытаскивать ничего больше не делая с сервером. Вставляете на его место новый диск, и он становится новым spare диском. Все это делается без захода в ОС и прочих манипуляций с ПО.
    Я работал по такой схеме.
    Ответ написан
    Комментировать
  • Как выполнить команду в команде?

    @res2001
    Developer, ex-admin
    Отфильтровать строки в текстовом файле можно с помощью findstr.
    Разбить строку на лексемы можно с помощью for /f
    Смотри:
    findstr /?
    for /?
    Ответ написан
    Комментировать
  • Как ответить на эти вопросы по взаимоблокировкам?

    @res2001
    Developer, ex-admin
    Вот курс по параллельному программированию: https://compscicenter.ru/courses/hp-course/2020-sp...
    Рекомендую. По моему, самый толковый из публичных преподаватель по этому направлению в РФ.
    Начните с 1, 2 и 5 лекций, там есть ответы на все вопросы.
    Ответ написан
    Комментировать
  • Мешает ли факт того, что я лежал в ПНД от военкомата и получил "легкий" диагноз (тревожное РЛ) трудоустройству в it сфере?

    @res2001
    Developer, ex-admin
    IT оно есть в разных местах, порой достаточно неожиданных. Получив подобную отметку в военнике вы никогда не устроитесь на любую работу в силовых структурах, МЧС и т.п. - где требуется отслужить срочку.
    Если считаете, что есть смысл на старте жизни потерять часть потенциальных работодателей, то вперед.
    У меня есть несколько примеров, когда сначала люди думали, что нафига им эта гос.служба, они и так красивые и все их с руками будут отрывать, а потом об этом жалели, когда возникли трудности с поиском нормальной работы.
    Ответ написан
    7 комментариев
  • Как организовать работу двух динамических массивов используя malloc?

    @res2001
    Developer, ex-admin
    Добавлю ко всему выше написанному: подобное использование двумерных массивов убивает производительность, т.к. вместо одного чтения памяти происходит 2, а кроме того весь массив разбит на много маленьких кусков, которые лежат в разных местах памяти - кэш процессора используется не эффективно. В нагруженных приложениях это будет сказываться.
    Правильнее использовать двумерный массив выделенный одним куском и пересчитывать индексы в ручную:
    int *a = malloc(sizeof(int) * n * m);
    for(int i=0; i < n; ++i)
      for(int j=0; j < m; ++j)
        *(a + i * m + j) = 0;

    Это стандартный вариант использования двумерного массива, который будет работать везде и на С++ то же.

    Что бы избежать пересчета индексов (например когда массивы трехмерные или больше) можно использовать промежуточный "указатель на массив переменной длины" (правда это будет работать только на gcc/clang и в С++ работать не будет, только С99+). Подробно расписывать не буду, т.к. тут важно понимание. Если будет интересно в интернете информацию по VLA найдете.
    Ответ написан
    1 комментарий
  • Как обеспечить доступ мобильному телефону к Exchange в локальной сети, не используя vpn?

    @res2001
    Developer, ex-admin
    Используйте IMAPS, но порты все равно придется пробросить.
    Ответ написан
    Комментировать
  • Пропал звук, ничего не помогает. Покупать новую?

    @res2001
    Developer, ex-admin
    Возможно убит разъем. В этом случае может помочь правильное подключение передней панели. Это не сложно и бесплатно, так что начните с этого. Скачайте мануал на материнку у производителя, там написано как правильно подключить переднюю панель.
    Купить новую - всегда успеете.
    Ответ написан
    Комментировать
  • Стоит ли писать статью о разработке собственного программного решения в области pro audio?

    @res2001
    Developer, ex-admin
    Пишите. Упор можно делать не на самом разрабатываемом ПО, а на проблемах в этой области, примененных вами подходах и алгоритмах для их решения, как и почему, возможно с примерами из реального кода. Будет интересно почитать.
    Ответ написан
    Комментировать