Задать вопрос
  • Как правильно разделить Си проект на файлы?

    BacCM
    @BacCM
    C++ почти с рождения
    Ну как минимум использование перекрестных переменных уже нелогично. Лучше функциями это обернуть. Как бы инкапсулировать в модуль.
    Правильный способ это на бумаге нарисовать модули/объекты системы и обозначить как они взаимодействуют между собой и внешним миром. И уже исходя из этого разбивать. В идеале чем больше модуль похож на черный ящик тем лучше с точки зрения системности.
    Как лакмусовая бумажка может использоваться то, что из одного модуля вдруг надо копаться в кишках другого, или знать о том как там что-то реализовано.
    Как пример именно для Си - стандартная библиотека. Открываешь файл получаешь указатель на структуру FILE но тебе, абсолютно не важно какие там поля, создается она по malloc или заранее созданный объект из некоего массива таких объектов. Это уже скрыто реализацией. Есть функции которые работают с этим указателем и всё.
    Как плохой пример "не очень черного ящика" можно рассмотреть strtok строка которая передается на вход будет модифицироваться и портится, что может быть не очевидным из семантики. Но сделано в угоду скорости и использования памяти.
    Ответ написан
    2 комментария
  • Системник зависает намертво, при запуске стресс теста AIDA64?

    @Drno
    В аиде есть варианты стресс теста для раных частей ПК,
    ПОпробуйте их по очереди включать. Вначале только ЦП, потом ЦП+ оперативка итд... Вообщше похоже на оперативку... Ну или мат плату
    Ответ написан
    5 комментариев
  • Можно ли реализовать такое с переменными Windows Shell?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    help FOR


    Смоделировал ситуацию.

    Папка 1 - d:\111
    FILE_144004_FILE.txt
    FILE_144004_FILE_2.txt

    Папка 2 - d:\222
    FILE_145005_FILE.txt
    FILE_145005_FILE_2.txt

    Записать нужно на флешку, диск f:\

    SET /p VAL="Введите цифры: "
    FOR %%A IN ( d:\111\FILE_%VAL%_FILE*.txt ) DO COPY %%A f:\
    SET /p VAL="Введите цифры: "
    FOR %%A IN ( d:\222\FILE_%VAL%_FILE*.txt ) DO COPY %%A f:\
    Ответ написан
  • Драйвера на контроллер Smart Array p410i. Где найти такой раритет?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    На сайте HP должны быть специальные диски, с помощью которых ставится винда. Несколько лет назад по крайней мере, они были
    SmartStart называются.
    Есть 8.70B версия от 2011 года, на 360G5 ставил в 2013 году таким образом. Современную винду ессно поддерживать не будет (может быть, я процесс установки уже плохо помню)
    Ответ написан
    1 комментарий
  • Как запустить команду от имени администратора?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    C:>runas /?
    Ответ написан
    Комментировать
  • Как подключится к RDP на Python 3?

    @pfg21
    ex-турист
    Может проще поставить на целевой стороне ssh сервер ??
    Ответ написан
    Комментировать
  • Быстрый старт в администрировании файловых серверов на Linux?

    Softer
    @Softer
    Linux с которым ни разу не сталкивался за 20 лет

    А Вы точно из IT? :)

    Файловый сервер - это скорее всего samba
    Почитать стоит также о правах на файлы, о iptables, о дистрах и разнице между ними (как минимум deb-based и rpm-based).
    Почитать что такое SSH и доступ к серверу по ключам. Скачать и пощупать какой-нить putty.
    Команды нужные гуглятся за секунды, но какойнить "Карманный справочник по командам Linux" можно и почитать.
    Ответ написан
    5 комментариев
  • Есть ли смысл заводить контроллер домена в таком случае?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Домен используется не только для того, чтобы пользователи авторизировались на своих компах, но еще и для
    1. Удобного шаринга ресурсов - сетевые диски, сетевые принтеры
    2. Удобной централизированной настройки всех компьютеров в сети (обновление, установка через политики)
    3. В случае смены компьютера - удобнее в домене. Пользователь просто садится за новый комп, а если его профайлы сделаны через сеть, то даже его рабочий стол и документы подгрузятся. Но для этого пользователей нужно дисциплинировать чтобы они все личные данные хранили в сети.
    И другое.
    Ответ написан
    2 комментария
  • Не считывает из файла?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Ну как бы у вас два fscanf записывают в один i-ый элемент массива - один в условии while, второй сразу ниже.
    Ответ написан
    1 комментарий
  • Как зашифровать пакет на C/C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Есть две машины, подключенные через маршрутизатор.
    написать драйвер устанавливающий соединение, обмен ключами и шифрование всех пакетов между машинами

    Читать про IPsec. Драйвер не нужен.

    на каком уровне OSI

    IPsec работает на сетевом (3-м) уровне.
    Ответ написан
    Комментировать
  • Это одно и тоже с точки зрения стандарта?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Казалось бы, в обоих случаях у нас вызов конструктора,

    А вот и нет. A a(); -- это объявление функции a, без параметров, возвращающей значение типа A.


    И получаем странную ошибку при компиляции:
    ssd1306_128x32_i2c_test.ino:50:3: error: request for member 'f' in 'a', which is of non-class type 'A()'

    В сообщении об ошибке об этом явно написано.
    Ответ написан
  • Обратимые преобразования данных?

    sgjurano
    @sgjurano
    Разработчик
    Если каждое преобразование в цепочке обратимо, то и результат будет обратимым, в качестве доказательства рассмотрим такой алгоритм:
    X <- исходные данные
    F1 <- обратимое преобразование, обратное для него обозначим F1'
    F2 <- обратимое преобразование, обратное для него обозначим F2'
    ...
    FN <- обратимое преобразование, обратное для него обозначим FN'

    Тогда после применения всех преобразований получим некоторые данные X':
    X' = FN(...(F2(F1(X))))

    Раскрутим X' обратно, используя обратные преобразования:
    X = F1'(F2'(...(FN'(X'))))
    Ответ написан
    1 комментарий
  • Обнаружение устройств в одной сети?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    1. написать сервер который будет знать список активных устройст и расказывать об этом клиентам.
    2. UDP broadcast
    3. что-то ещё - не как у всех. :)
    Ответ написан
    Комментировать
  • Как переименовать папку пользователя в Windows 10?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Папки с русскими символами - зло.
    Полно программ, которые просто не хотят поддерживать русский.

    Топорный вариант - создать нового пользователя.

    Но вообще проще поменять папку виртуальной машины. Например, C:\vm\Linux
    Наверняка в настройках виртуальной машины есть такая опция, поищите.
    Ответ написан
    Комментировать
  • Vlan Default что значит?

    fzfx
    @fzfx
    18,5 дм
    в общем случае default vlan - это тот vlan, который присутствует на устройстве из коробки; тот vlan, который будет на порту коммутатора, если администратором не предпринимались действия по смене номера vlan.
    если у порта, к которому подключен роутер, один номер vlan на коммутаторе, а у порта, к которому подключено устройство - другой номер vlan, то через этот коммутатор роутер и устройство видеть друг друга не будут.
    вы бы написали, для чего вам потребовались манипуляции с vlan'ами, может, кто своё мнение и выскажет. а если так, "убираю порт из vlan и перестаёт видеть всё" - результат вполне ожидаемый и корректный.
    Ответ написан
    1 комментарий
  • Как реализовать алгорим задачи о сумме подмножеств?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Необязательно же искать оптимальный (кратчайший) набор, дающий нужную сумму?

    Предлагаю от простого к сложному двигаться:
    1. проверить каждое из N на остаток деления S % n = 0 Вдруг, найдётся число, которое надо просто повторить m раз, чтобы получить S
    2. проверить каждую пару чисел из N на разницу: если найдётся разница в 1, можно получить любое число через эти два
    3. проверить каждую тройку чисел из N Подзадача та же, получить 1. Есть 1 – есть любое целое.
    Ответ написан
    2 комментария
  • Как правильно передавать функцию как параметр C++?

    @Mercury13
    Программист на «си с крестами» и не только
    Не забывайте, что у startManufacturing есть скрытый параметр this.

    Четыре варианта.

    1. Использовать указатель на метод App:
    Rest::function(char * function_name, int (App::* f)(String), App& object)
          // вместо App можно какой-то интерфейс, который App реализует
    …
    object.*f("string");
    ...
    bt_rest.function("", &App::startManufacturing, *this);


    2. Сделать startManufacturing static:
    class App {
      static int startManufacturing(String command)
    };


    3. Сделать обёртку с замыканием:
    Rest::function(char * function_name, int (*f)(String, void*), void*);
    
    void doStartManufacturing(String command, void* closure) {
      reinterpret_cast<App*>(closure)->startManufacturing(command);
    }
    ...
    bt_rest.function("startManufacturing", doStartManufacturing, this);


    4. «Избегай незнакомых женщин и глобальных переменных». Костыль, в общем.
    App app;
    int doStartManufacturing(String command) { return app.startManufacturing(command); }
    ...
    bt_rest.function("startManufacturing", doStartManufacturing);


    Ах да. Вы передаёте String’и по значению. Приспособлены они к такой передаче или всё же лучше по ссылке?
    Ответ написан
    6 комментариев
  • Как сделать полный перенос сервера FreeBSD 9.3?

    athacker
    @athacker
    Во-первых, dump создаётся только в рамках одного раздела. Если у вас на железе более одного раздела во фре (а это почти 100% так), то нужно делать дамп каждого раздела.

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

    В третьих -- на виртуалку не нужно ставить систему. Нужно загрузиться с Live CD и просто создать и отформатировать разделы в том же виде, в каком они были на оригинальном сервере (ну, по крайней мере, каждый раздел должен быть НЕ МЕНЬШЕ, чем на исходной машине).

    Ну и в четвёртых -- если у вас в оригинале ZFS, то для ZFS вообще вся эта схема не работает, т. к. дамп не умеет бэкапить ZFS, и там всё по-другому надо делать.
    Ответ написан
    Комментировать
  • Как правильно перенести почту на внутренний сервер организации?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Нет
    2. Не обязательно, но крайне желательно.
    3. A-запись в DNS, PTR-запись у провайдера.
    4. Если у организации есть лишние деньги.
    Ответ написан
    1 комментарий
  • Как отсортировать два массива в один?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    существует Сортировка слиянием но в вашем случае, это из пушки по воробьям*

    так что как уже сказано:
    1 - объединить
    2 - отсортировать

    * - алгоритм целесообразен не для массивов а
    алгоритм сортировки, который упорядочивает ... ... структуры данных, доступ к элементам которых можно получать только последовательно, например — потоки
    но если в учебном процессе от вас хотят именно этого - применяйте
    Ответ написан
    4 комментария