• Стоит использовать исключения или if/else?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Это не сравниваемые вещи.

    if/else проверяет ошибку в указанном месте.

    Exception же перехватит ее внутри любого уровня вложенности, и не даст завершиться программе, если где-то внутри случилась критическая ошибка, которую вы перехватываете.

    То есть, если вы где-то забыли проставить if/else, результат будет внезапное завершение программы.
    exception можно поставить на самом высоком уровне, и добиться, что будет закрыто какое-то конкретное окно, не будет выполнена какая-то конкретная операция, но приложение останется работать и выполнять другие функции.

    Зависит от того, что вы делаете. Если игрушку на 2 кнопки - то можно и без exceptionов, если же многопользовательское приложение, где из-за непредусмотренного действия одного юзера, упадет все приложение для всех пользователей - if/else будет явно недостаточно.
    Ответ написан
    Комментировать
  • Как скопировать файл с USB drive linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    Воткните в скрипт
    whoami > /tmp/udev_test
    И вставьте флешку.

    Будет видно сразу две вещи:
    - запускается ли скрипт действительно udev'ом
    - от чьего имени запускается

    Мне так помнится, что udev всегда от рута исполняет скрипты. udev рестартовать не забыли, к слову?
    Ответ написан
    Комментировать
  • Как сделать клон SD карты с загрузочной Linux OS на ней?

    я с помощью kpartx такое делаю.
    1. создаем файл нужного размера. dd if=/dev/zero of=fake_blockdevice.img bs=1M count=1800
    2. kpartx -v -a fake_blockdevice.img
    3. lsblk. покажет новое блочное устройство
    4. разметка, монтирование, распаковка rootfs... все как и в случае с sd картой
    5. umount разделов
    6. kpartx -d fake_blockdevice.img


    все, у вас есть файл fake_blockdevice.img нужного размера, который через dd можно залить на sd карту
    Ответ написан
    Комментировать
  • Как c помощью Qt собрать статический exe под windows

    Для статической линковки нужно сначала собрать сам Qt из исходников, сконфигурировав его с параметром -static. В ридми и на сайте проекта это достаточно внятно расписано. Но в этом случае могут вылезти проблемы с плагинами и QtQuick.

    Если задача не обязательно собрать статически, а просто запустить на другом компе, то помимо прямых DLL-зависимостей необходимо рядом с EXE-файлом ещё создать подкаталог platforms и скопировать туда плагин qwindows.dll из каталога <Qt>\qtbase\plugins\platforms\. Если в программе используются ещё какие-то плагины, аналогично, нужно будет и их скопировать в соответствующие подкаталоги.
    Ответ написан
    3 комментария