Задать вопрос
  • Почему constinit помогает решить проблему static order initialization fiasco?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Единицы трансляции ведь загружаются в произвольном порядке?

    "загружаются" -- неподходящее здесь слово. Единицы трансляции связываются в единый исполняемый образ на стадии линковки и всё что в них было загружается одновременно.

    Каким образом наличие слова constinit в одной из единиц трансляции гарантирует, что она загрузится раньше?

    Это слово гарантирует, что такой объект будет инициализирован до начала динамической инициализации, см, а это всё, что требуется для решения проблемы static order initialization fiasco.
    Ответ написан
    Комментировать
  • Как подключить дисплей с использованием FreeRTOS?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    какие нюансы надо учесть при подключении дисплея, при формировании задачи ОСРВ?

    Если дисплей работает без ОС, то, судя по всему, нюансы подключения успешно учтены. Из нюансов запуска задачи на ум приходит размер выделенного ей стека.
    Ответ написан
  • Почему не выводятся данные в консоль?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как только я ввожу число литров и нажимаю энтер все сбрасывается и ничего не выводится. Код пишется в vscode, код пытаюсь запустить в самой консоли vscode. В чем может быть проблема?

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

    Может с кодом что-то не то

    С кодом всё ок.
    Ответ написан
    1 комментарий
  • Как записать информацию из вывода в файл с неизвестным названием?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как перенаправить информацию из вывода команд в файл, который создается в процессе проверки командой
    #touch $( date '+%Y-%m-%d_%H-%M' )

    Записать имя файла в переменную и дальше везде использовать её. Например:
    …
    file=$( date '+%Y-%m-%d_%H-%M' )
    touch "$file"
    …
    echo -e "               Product Name : $PN_FRU" >> "$file"
    …
    Ответ написан
    Комментировать
  • C++ CMake Как исправить ошибку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Не могу понять в чем дело

    Судя по всему в макросе assert использован текст с какими-то забавными символами. Два очевидных способа решения:
    - можно эти строки удалить, в корректно написанной программе они ни на что не влияют.
    - можно разобраться с тем, что не так внутри assert. Начать можно, например, выполнив вместо компиляции препроцессирование (заменив в командной строке вызова gcc -c на -E) и почитав внимательно препроцессированный код в местах на которые ругается компилятор.
    Ответ написан
    Комментировать
  • Не могу понять почему не работает USER тред?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему не работает USER тред?

    Потому что, опять, ты вызываешь makecontext не задав uc_link. thread_func1 отрабатывает, а дальше гонка между вызовом thread_func2 из monitor_thread и завершением программы из-за возврата из функции контекста в контексте созданном с uc_link == NULL.

    Но и без этого код выглядит загадочно. Непонятно зачем мешать в одну кучу контексты и clone. Непонятно зачем дублировать указатель на функцию в Thread::func и в Thread::context. Непонятно зачем контексты, если schedule их не использует. Непонятно, зачем monitor_thread занимается активным ожиданием Thread::active. Непонятно, зачем функции потоков лезут в потроха Thread. Короче, этому коду не хватает идеи.
    Ответ написан
  • Как раздать блочное устройство с linux-компьютера через usb-c порт?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ответ написан
    Комментировать
  • Эмулятор веб-камеры для Линукса?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ответ написан
    Комментировать
  • Как симулировать сбои в файловой системе?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как симулировать сбои в файловой системе? … Может есть уже устоявшиеся готовые файловые решения

    В тегах linux, у него есть встроенный механизм fault injection.
    Ответ написан
    Комментировать
  • Как выявить нужные данные из таблицы в отладчике Turbo Assembler при произведении трассировки программы CPU?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    у меня получилось найти только…

    Если ты нашёл машинный код, то его длину ты легко получишь посчитав символы, 6 16-ричных цифр -- это 3 байта. Ну или вычтя из адреса следующей инструкции пдрес текущей.
    Физический адрес в реальном режиме можно посчитать как cs * 10h + ip. В твоём случае получается 48ff9.
    Из твоей записи непонятно, нашёл ты значения регистров или нет, если что, вон они, в среднем окошке в верхнем ряду, а флаги -- в правом.
    Ответ написан
  • Как исправить проблему с шаблонами?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ошибки вылезают в месте оператора перегрузки () и Image operator!() возникает ошибка.

    Это правильно. Нельзя перегрузить функцию (или оператор) только типом возвращаемого значения.

    Если убрать Image operator!(), то только одна ошибка ("невозможно преобразовать const_Ty в T&")

    Приведённый код эту ошибку не воспроизводит. Но вообще ничто не мешает добавить const в определение оператора !(), поскольку ему не требуется менять исходный объект:
    Image<T> operator!() const

    Но я вижу другую ошибку: оператор вызова функции определён как константный: T& operator()(int i, int j) const, но возвращает потенциально неконстантную ссылку на внутренности объёкта -- T&. Следующий код поэтому не будет работать: result(i, j) = -_data[i][j];. Нужно либо выбросить ссылку из возвращаемого значения оператора T& operator()(int i, int j) const и переписать реализацию оператора !(), либо добавить неконстантную реализацию оператора вызова функции.
    Ответ написан
    Комментировать
  • Как правильно подменить (скопировать) скрипта в самом скрипте?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Есть ли способ из самого скрипта подменить сам скрипт чтобы он не портился?

    Когда cp или mv заменяет открытый интерпретатором файл, исходный файл не портится. Если интерпретатор взаимодействует с файлом через один и тот же файловый дескриптор, то никакого значения замена файла не имеет. Нужно разбираться с деталями того что портится, чтобы понять, как это пофиксить.
    Ответ написан
    Комментировать
  • Как решать подобные задачи по криптографии?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как решать подобные задачи по криптографии?

    Для начала прочитать условия и заглянуть в код. Увидеть в нём вот это:
    key_val = b""
        seed_val = plain_text[0]
        random.seed(seed_val)
        for i in range(16):
            key_val += random.randrange(1, 255).to_bytes()

    понять, что key_val однозначно генерируется из первого символа открытого текста.

    Флаг имеет формат вида ntcontest{FLAG_VALUE}

    Я не понял эту часть, имеется в виду, что первый символ открытого текста флага -- 'n'? Если так, то вообще решение в одно действие, если нет, то в любом случае можно организовать перебор всех возможных первых символов, генерировать по ним key_val, расшифровывать им и проверять, что первый символ полученного текста совпадает с символом использованным для генерации ключа.
    Ответ написан
    Комментировать
  • Как организована память компьютера?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    мне не понятно почему рисунок не выглядит примерно следующим образом?

    Потому что числовые значения в обоих случаях должны быть одинаковыми -- 00000021 и 00000104. То что ты записал -- это 21000000 и 04010000.
    Ну и заодно, в "тексте перед рисунком" перепутаны направления нумерации байтов: на рисунке "а" байты пронумерованы, очевидно, слева направо, а на рисунке "б" -- справа налево.
    Ответ написан
  • Как исправить ошибку debian/rules build subprocess returned exit status 2?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    2 -- это "файл не найден". В приведённом логе нет самой ошибки, только её последствия. Нужно читать лог сборки раньше, чтобы понять, что произошло.
    Ответ написан
  • Реализую свойства, но почему у string требует перегрузку для cout?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Property<std::string> Name = Property<std::string>(_name);
    …
    std::cout << person.Name << std::endl;  // тут ошибки

    почему у string требует перегрузку для cout?

    Потому что Property<std::string> -- это не string. Хоть у тебя и есть Property<T>::operator T() const ничто в твоём коде не говорит о том, что Property<std::string> нужно пытаться приводить к string а не к какому-нибудь другому типу.
    Ответ написан
    1 комментарий
  • Почему не печатается?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему не печатается "custom thread completed"

    Потому что thread->context.uc_link = NULL; в строке 27, а, согласно man swapcontext:
    If the successor context pointer is NULL, the thread exits.


    Исправить можно, например, так:
    int custom_thread_create(custom_thread *thread, ucontext_t *link, void (*start_routine)(void*), void *arg) {
        …
        thread->context.uc_link = link;
        …
    }
    …
        ucontext_t main_context;
        getcontext(&main_context);
    
        if (custom_thread_create(&thread, &main_context, print_message, (void*)message) == 0) {
    …
    Ответ написан
  • Почему SFML не линкуется к проекту?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Собрал SFML из исходников…
    main.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl sf::VideoMode::VideoMode(unsigned int,unsigned int,unsigned int)" (__imp_??0VideoMode@sf@@QEAA@III@Z) referenced in function main
    main.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl sf::WindowBase::isOpen(void)const " (__imp_?isOpen@WindowBase@sf@@QEBA_NXZ) referenced in function main
    main.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl sf::WindowBase::pollEvent(class sf::Event &)" (__imp_?pollEvent@WindowBase@sf@@QEAA_NAEAVEvent@2@@Z) referenced in function main
    main.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl sf::Window::Window(class sf::VideoMode,class sf::String const &,unsigned int,struct sf::ContextSettings const &)" (__imp_??0Window@sf@@QEAA@VVideoMode@1@AEBVString@1@IAEBUContextSettings@1@@Z) referenced in function main
    main.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl sf::Window::~Window(void)" (__imp_??1Window@sf@@UEAA@XZ) referenced in function main
    main.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl sf::Window::close(void)" (__imp_?close@Window@sf@@UEAAXXZ) referenced in function main

    В моей версии sfml эти символы определены в библиотеке sfml-window, которой у вас нет.
    Ответ написан
  • Как узнать новый ли жесткий диск?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    start/stop count 4

    Его, похоже, включали всего дважды.

    Erase Time ~ 3 hours 30 minutes

    Это время требуемое для секьюрного стирания диска заблокированного паролем, к истории использования не имеет отношения.
    Ответ написан
    8 комментариев
  • Утечка памяти gdiplus?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    что я должен удалять или очищать и как я должен это делать?

    MSDN говорит, что у каждого GdiplusStartup должен быть парный вызов GdiplusShutdown.
    Ответ написан
    1 комментарий