• Как сохранить значения нескольких переменных в С++ 17?

    @res2001
    Никита Савченко, Нормальная затея. Просто вы ее не правильно реализовали. Если функция возвращает вектор, то и записать это значение можно в вектор, а не во что-то другое.
    vector<int> vec = getInfo(normal_weight, weight);
    normal_weight = vec[0];
    weight = vec[1];

    Но лучше std::pair, а еще лучше ссылки, как в ответе Александр Ананьев
    Посмотрите пример с tuplом
  • Почему не работает самоподписанный сертификат?

    @res2001
    RedFirefly, Клиенту надо добавить сертификат ЦА. И тогда:
    После этого все сертификаты, выпущенные в этом CA (и в его подчиненных CA, буде есть такие) - станут валидными.
  • Какую версию юзать для почтового сервера?

    @res2001
    AlexVWill, Аналогично и exim запускается не от рута. Думаю у postfix схема с открытием сокета та же (т.е suid бит и понижение привилегий после открытия сокета).
    По моему чтоб htop показывал эффективного пользователя процессов надо его запускать с каким-то ключом. Или это касается top... У меня сейчас нет линукса под рукой, не могу проверить.
    Идентификаторов владельца процесса 3 штуки: реальный, эффективный и сохраненный. Для манипуляций с понижением/повышением привилегий.
  • Какую версию юзать для почтового сервера?

    @res2001
    AlexVWill, Я упомянул про якобы проблему в безопасности, ты сказал, что рут не нужен. Я объяснил зачем нужен рут почтовику. Я не пложу сущности, а отвечаю на твои реплики.
    Или ты хочешь сказать, что программа может использовать 25 порт на линуксе без прав рута?
    В явном виде там рут и не используется, служба стартует из-под другого пользователя, но на исполняемом файле установлен suid бит, что дает процессу рутовые привилегии при запуске от любого пользователя. Возможно suid бит используется и в модуле postfix, отвечающего за открытие сокета. В exim я это сам проверял.
  • Что это означает?

    @res2001
    Zorroti, Если написать A(i, j) > 0 будет понятнее?
  • Какую версию юзать для почтового сервера?

    @res2001
    AlexVWill, Видимо, ты не занимался программированием сетевых приложений.
    Может не совсем корректно выразился, программа открывает сокет. Номер порта - это один из параметров сокета.
    Когда программа стартует ей надо сообщить системе, что она хочет работать с сокетом по TCP протоколу и использовать порт 25, для открытия сокета есть системный вызов socket(), а для задания параметров сокету есть вызов bind(). Там в параметрах адреса указывается номер порта, а уже внутри bind система проверяет, если запрошенный порт меньше 1024, то требует наличие у процесса рутовых прав.
    Процесс может быть запущен с рутовыми правами, сделать свои рутовые дела, а потом понизить права до какого-то другого пользователя, обычно имя этого пользователя как-то может быть сконфигурированно. Этот механизм используют все "правильные" приложения, работающие с "привилегированными" портами.

    Грубо говоря это как открыть файл. Права на файл - это правила фаервола, а открытие файла программой для его чтения или записи - аналогично открытию сокета для его использования.
  • Какую версию юзать для почтового сервера?

    @res2001
    AlexVWill,
    открытие порта делается через iptables/ufw

    Открытие открытию рознь.
    В фаерволе вы открываете порт, который слушает другая программа, чтоб пропускать трафик пришедший на этот порт к этой программе.
    В программе сервере (postfix, exim, любая другая) открывается этот порт для приема данных (которые выше пропустил фаервол). В Linux (и других никсах) для открытия программой портов ниже 1024 требуются права рута. Это политика работает по умолчанию. По моему ее можно отменить, но это не точно и обычно это никто не делает. А SMTP порт 25 - он меньше 1024, поэтому требуется рут.
  • Какую версию юзать для почтового сервера?

    @res2001
    Николай, Там чисто архитектурная разница. postfix модульный, exim монолит. Пишут, что при среднем количестве почтового трафика exim работает быстрее, пока в очередях не накапливается много писем. Для среднестатистического корпоративного почтовика разницы особой нет.
    Некоторые пишут, что exim работает от рута и это дыра в безопасности, но это не совсем так - root требуется только на этапе открытия 25 порта и для некоторых других действий, после этого привилегии понижаются. То же самое требуется и модулю postfixa, т.к. рутовые права для открытия порта для него никто не отменял. Другое дело, что у posfixa это небольшой модуль отвечающий за отдельно взятую задачу, а exim - он весь в одном исполняемом файле.
  • Какую версию юзать для почтового сервера?

    @res2001
    Вместо postfix можно использовать exim. Надежный, открытый продукт. Все остальное так же к нему успешно прикручивается.
  • Как пингануть хост, находящийся за NAT, но когда при этом на шлюзе есть ssh?

    @res2001
    Талян, В plink можно использовать сохраненный профиль соединения, который создается в putty, чтоб не вводить логин/пароль и прочие данные. По моему, в этом случае, никакого подтверждения не требовалось.
    Кстати, в питоне есть модули, реализующие протокол ssh, можно использовать их, чтоб не пользоваться сторонними утилитами. Контроля, возможно, будет больше. Например paramiko, наверняка есть и другие.
  • Как считать из файла определенное слово, и посчитать сколько раз оно появляется в файле СИ?

    @res2001
    Алгоритм элементарный. Функций разрешенных для использования достаточно. Читать придется посимвольно с помощью fgetc. В цикле до конца файла читаете очередной символ, сравниваете с первым символом строки, если равны, то следующий символ нужно сравнивать со вторым символом строки и т.д.
    Другое дело, что читать посимвольно из файла - это плохая идея. Правильнее было бы читать файл большими кусками, скажем по 4 Кб или больше, и искать строку в прочитанном куске. Но задание есть задание.
    Вы сделайте собственную попытку реализации алгоритма, если будут затруднения, можете писать сюда конкретные вопросы.
    А сейчас ваш вопрос это задание - это противоречит правилам ресурса.
  • Как отсортировать матрицу в с++?

    @res2001
    Чем стандартные сортировки не устраивают? В стандартной библиотеке несколько вариантов, выбирайте.
    Ваша задача сортировки ничем особым не отличается от любых других сортировок.
    Правда из описания не понятно что вы в итоге хотите получить. Вам надо сортировать каждый столбец отдельно?
    Приведите пример исходной и отсортированной матрицы для ясности.
  • PKI. CA шифрует своим закрытым ключом или же открытом?

    @res2001
    shledon, Конечно. Для этого открытый ключ ЦА всегда должен быть в доступе.
    Фактически ЦА нужен только на этапе подтверждения сертификата или отзыва сертификата и формирования нового списка отзывов. Все остальное время его можно держать выключенным.
    Зато когда истекает срок действия сертификата ЦА - все дерево сертификатов, подписанное его сертификатом протухает. К этому событию надо готовится отдельно :-)
  • Как записать указатель в виде вектора char?

    @res2001
    iihaarr, Интересно, для чего вам указатель в vector<char>?
    я получу указатель на а?

    Нет. data возвращает указатель на первый элемент массива внутри вектора, в вашем случае возвращает char* Вы получаете указатель на содержимое arr, а не само содержимое.
  • Возможно ли создание своего типа данных - массива бит?

    @res2001
    Daniil_the_Fool,
    И size of пишет что 4 байта

    Это потому что, скорее всего, в вашем компиляторе размер bool 4 байта. Стандарт не определяет размер bool.
    Смысл подобных битовых полей в том, что на указанном типе данных выделяются биты/группы битов. Но память все равно выделяется под указанный тип данных (а не под биты). Если одного поля указанного типа будет не достаточно, чтобы вместить все биты, то компилятор добавит еще одно поле и т.д. В вашем примере правильней использовать uint8_t, тогда размер будет 1 байт. Для доступа к таким полям компилятор сам генерирует соответствующие битовые операции. При желании их можно увидеть в ассемблерном коде, вашей программы. В любом случае, как бы вы не определяли битовые поля на прямую с битами вы работать не можете, только через битовые операции. Правда подобное определение битовых полей скрывает этот факт и создает иллюзию прямого доступа к битам. Кстати, еще один момент, на битовое поле нельзя получить ссылку - это следствие того, что биты не возможно адресовать (и взять адрес битового поля).
    Подобные битовые поля - не универсальный вариант. Если вам понадобится другое количество битов, то придется менять структуру. Если нужен будет динамический размер битового поля, то вообще подобный вариант - не вариант. Правда в этом случае придется самому писать функции для доступа к битам по их номеру. Но это не большая проблема.
  • Зависает (не происходит) перемещение файлов между папками. Как исправить?

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

    @res2001
    В чем проблема с кодом?

    Для информации: в цикле for не обязательно переменную цикла инициализировать нулем, а так же не обязательно делать инкремент переменной цикла - можно делать произвольную операцию (операции). Конкретно к вашей задаче для обхода только нечетных элементов массива можно использовать такой цикл: for (int i=1; i<16; i+=2)
  • Как в сети Windows отобразить машины, подключённые по VPN?

    @res2001
    Для отображения сетевого окружения винда использует широковещательные запросы. Широковещательные пакеты обычно не маршрутизируются между сетями, поэтому ответы на эти запросы из ВПН не приходят (потому что запросы туда не попадают).

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

    Другой вариант - настроить между ЛВС и ВПН proxy-arp.
  • Как оптимизировать запрос с большим количеством данных в таблице?

    @res2001
    Поле user_id текстовое? Поиск по тексту медленнее чем по числовым значениям.
    Как уже тут все писали - добавить индексы по полям, участвующим во фразе where.
    Индексация полей - это то благодаря чему ускоряются операции поиска в таблице. Без индексов кардинально вы ничего не измените.
  • Как переводить из двоичного числа - строки в десятичное число строку?

    @res2001
    jcmvbkbc, Была такая мылсь, но это же написано не в вопросе тут, а на SO. Не факт, что задачи у вопрошающих совпадают.