• Можно ли как то скачать URL сайта сразу в переменную?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Можно заменить URLDownloadToFileA на URLOpenBlockingStream и читать данные из интерфейса IStream который возвращает эта функция.
    Ответ написан
    3 комментария
  • Как правильно считать значение из бинарного файла C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    third = string(buffer1);
    fourth = string(buffer2);

    Должно быть
    third = string(buffer1, size3);
    fourth = string(buffer2, size4);

    поскольку строки прочитанные в buffer1 и buffer2 не 0-терминированные.

    И отдельно
    char buffer1[size3];

    char buffer2[size4];

    это не по стандарту С++, компилируется и работает только из-за расширений GNU.
    Ответ написан
    5 комментариев
  • Почему выводятся не те символы, которые прописаны в коде?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    wcout << endl << "Результат: " << encrypt(s);

    ты потерял L перед "Результат" и выводишь в wcout обычную строку.

    А перед этим выводишь в cout. Приведи всё к выводу в wcout.

    Стандарт C++ об этом говорит вот что:
    Mixing operations on corresponding wide- and narrow-character streams follows the same semantics as mixing such operations on FILEs, as specified in the C standard library.

    А стандарт С в свою очередь говорит вот что (C11 7.21.2:4):

    Each stream has an orientation. After a stream is associated with an external file, but
    before any operations are performed on it, the stream is without orientation. Once a wide
    character input/output function has been applied to a stream without orientation, the
    stream becomes a wide-oriented stream. Similarly, once a byte input/output function has
    been applied to a stream without orientation, the stream becomes a byte-oriented stream.
    Only a call to the freopen function or the fwide function can otherwise alter the
    orientation of a stream. (A successful call to freopen removes any orientation.)

    Byte input/output functions shall not be applied to a wide-oriented stream and wide
    character input/output functions shall not be applied to a byte-oriented stream.
    Ответ написан
    7 комментариев
  • Программа не отвечает на кириллические символы - что делать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Помогите мне, пожалуйста, решить эти проблемы

    При условии правильной настройки переменных окружения достаточно заменить setlocale(LC_ALL, "ru"); на setlocale(LC_ALL, "");.
    Ответ написан
  • Почему в risc-5 архитектуре команда jal такая, зачем там перемешиваются биты, почему значение Imm разбросанно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему просто 20 бит не берется по порядку

    Официальный ответ на этот вопрос прямо написан в спецификации RV32I Base Integer Instruction Set, в разделе 2.3 "Immediate Encoding Variants" на странице 13:
    By rotating bits in the instruction encoding of B and J immediates instead of using dynamic hard-
    ware muxes to multiply the immediate by 2, we reduce instruction signal fanout and immediate
    mux costs by around a factor of 2


    для кого авторы постарались придумать такую ерунду

    для реализаторов спецификации в железе
    Ответ написан
    Комментировать
  • Почему компиляторы не используют инструкции повторения REP movs?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему компиляторы не используют инструкции повторения REP movs?

    чего это "не используют"? Используют.

    Она должна быть в миллиард раз быстрее

    Инструкция которую не нужно читать из памяти, но которая сама лезет в память дважды на каждом цикле своего выполнения не может быть "в миллиард раз быстрее" других реализаций той же логики.
    Ответ написан
    Комментировать
  • Как расширить размер динамического массива типа string в с++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как расширить размер с сохранением данных(realloc) с массивом string в с++

    Думаю, что по честному (т.е. не завязываясь на конкретное внутреннее представление string) -- никак, только выделив новый массив и скопировав/переместив объекты из старого массива в новый. Имеет смысл эту работу делегировать стандартному контейнеру vector, где эта логика уже должна быть реализована.
    Ответ написан
    Комментировать
  • Что возвращает gps модуль neo-6m?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    что возвращается в качестве ответа

    Сообщения формата NMEA.

    Вроде все сообщения из твоего ответа по ссылочке описаны. В частности
    $GPGLL,5547.75949,N,03747.58257,E,155030.00,A,A*64
    55°47.75949' северной широты, 37°47.58257' восточной долготы, зафиксировано в 15:50:30.00.
    Ответ написан
    Комментировать
  • Как называется такая практика и является ли она приемлемой?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Является ли нормальной практикой для девелопера создать ветку feature1 от не последнего коммита мастера, то бишь не от "g"

    Да. В частности это стандартная практика разработчиков ядра linux: фичи должны расти от релизов или релиз-кандидатов, а не от каких-то случайных коммитов.

    и потом смерджить feature1 с коммитом X2 затирая изменения f и g?

    Из вопроса непонятно, это требование -- затирать, или это побочный эффект которого хочется избежать?
    Если делать обычный git merge, то никакого затирания не будет. Будут конфликты, если изменения касаются одних и тех же мест, иначе будет объединение изменений ветки и мастера.
    Чтобы затирать изменения можно делать git merge --strategy=ours -- в результате мёржа изменения сделанные в ветке которая мёржится будут потеряны.
    Ответ написан
  • Как экранировать символы в .bash-aliases?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Решил, как порядочный линуксоид вынести алисы в отдельный файл.

    $'/var/www/www-root/data/www\r'

    \r в конце намекает на то, что в этом отдельном файле концы строк виндовые а не юниксовые. dos2unix .bash-aliases должен это пофиксить.
    Ответ написан
    2 комментария
  • Почему не отрабатывает exit на третьем уровне скрипта?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Написали многоуровневое меню при помощи функций, работает без проблем все, кроме выхода.
    Примерно на 2-3 уровне меню "Exit" не выходит из скрипта, а возвращается на уровень выше.

    всё зависит от того, как эти функции вызываются. Если так:

    clear; ./1_1_ipmi_menu.sh ; unem ;;

    то разумеется вызов exit внутри скрипта 1_1_ipmi_menu.sh приведёт в возврату в unem, вы же тут отдельный процесс создаёте.
    Чтобы exit в функциях приводил к выходу из приложения нужно импортировать (source) функции из этих скриптов и вызывать функции вместо запуска скриптов.
    Типа того:
    #!/bin/bash
    unem() {
            read b
            case $b in
              1) clear ; … ; unem ;;
              2) clear; PMI ; unem ;;
              3) clear ; menu ;;
              0) exit 0 ;;
            esac
    }
    source 1_1_ipmi_menu.sh
    source 1_1_system_menu.sh
    unem
    Ответ написан
    Комментировать
  • Почему ptrace если не через execl не работает?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Потому что PTRACE_TRACEME не останавливает вызывающий процесс, а значит у родителя нет возможности заказать остановку по системному вызову. Останавливают трассируемый процесс только сигналы и явно запрошенные трассировщиком события.
    В частности, вызов execve трассируемым процессом вызывает отправку ему сигнала SIGTRAP.
    Можно вставить перед 20й строкой какой-нибудь asm volatile ("int3"); и это тоже вызовет доставку сигнала, останов и трассировку последующих вызовов write.
    Ответ написан
  • Ubuntu выводит -bash: nohub: command not found, что делать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    -bash: nohub: command not found,

    команда называется nohup, сокращение от no hangup.
    Ответ написан
    3 комментария
  • Почему не получается скомпилировать файл через wsl на c?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    make mario.c

    говорит, что нужно собрать mario.c, но собирать ведь надо не его, mario.c -- это исходник. Пиши make mario чтобы собрать mario из mario.c. И да, это работает без Makefile за счёт втроенных в make правил только для таких простых случаев. Для более сложных надо будет писать Makefile.
    Ответ написан
    2 комментария
  • Как сделать вызов функции из терминала чтобы обработчик динамически искал и вызывал функцию?

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

    У этой задачи есть два больших класса решений -- системно-независимые и системно-зависимые, в зависимости от дополнительных условий. Для начала надо ответить на вопрос "где ищет". Если ответ на этот вопрос -- "в твоём приложении", а набор функций фиксированный, то можно построить отображение "имя функции" -> "адрес функции" с использованием какого-нибудь массива или хеш-таблицы и искать с его помощью.
    Если набор функций не фиксирован во время сборки приложения, или искать надо за пределами приложения, нужно ответить ещё на один вопрос: "знают ли функции о том, что их будут выполнять или нет". Если знают -- опять же построить отображение "имя функции" -> "адрес функции" и каким-нибудь образом сделать его доступным приложению. Если речь идёт о вызове произвольных заранее неизвестных функций, остаётся вариант с динамической загрузкой и поиском имён -- dlopen/dlsym или LoadLibrary/GetProcAddress для венды.
    Ответ написан
    Комментировать
  • Выдаёт ошибку - This program cannot be run in DOS mode.при этапе компоновки и линковки?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    при этапе компоновки и линковки ml.exe /c /coff program.asm
    link.exe /subsystem:windows program.obj выдаёт ошибку - This program cannot be run in DOS mode.

    Не нужно запускать виндовые исполняемые файлы в досе. Ассемблируй и линкуй под виндой, либо используй досовские программы коль скоро уж ты собираешь приложение для win32.

    call GetWindowReact

    call GetWindowsDC

    у тебя тут опечатки в названиях функций, правильные названия -- GetWindowRect и GetWindowDC.

    сделать так чтобы изображение окружности было вписано в квадрат

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    изменения в файле "C" нужно вернуть к изначальному состоянию
    Как это сделать?

    git checkout HEAD~1 "C"
    git commit или git commit --amend, в зависимости от того, нужно ли закоммитить отмену изменений С отдельно или убрать изменения С из предыдущего коммита.
    Ответ написан
    1 комментарий
  • Может ли прерывание прервать выполнение конструктора / деструктора в С++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Может ли прерывание прервать выполнение конструктора / деструктора в С++?

    Да, конечно может, как и любой другой код, явно не защищённый от прерываний.

    нужно ли в конструкторах / деструкторах защищать код критическими секциями?

    Нужно защищать любое состояние, к которому может обращаться код из разных контекстов выполнения -- например из разных потоков или из потока и обработчика прерывания. В ядре linux (где разных типов контекста много и разных способов синхронизации тоже много) есть руководство, что и когда использовать.
    Ответ написан
    Комментировать
  • Как объединить последний коммит и одним из предыдущих не трогая остальные?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Попробовал git rebase -i HEAD~5
    но если в открывшемся списке напротив "коммит 4" ставлю флаг "s"
    то у меня объединяются почему-то "фикс 4-го коммита" и "коммит 1"

    нужно перенести строчку "фикс 4-го коммита" после строчки "коммит 4". squash объединяет коммит на котором он стоит с предыдущим в этом списке.
    Ответ написан
    Комментировать
  • Очень странная ошибка MPI?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    в чем ее суть

    в том, что процесс с rank == 0 посылает сообщение самому себе, и это становится для него неожиданностью.

    как с ней бороться

    как вариаент -- не посылать сообщение самому себе из процесса с rank == 0. Например так:
    if(rank == 0){
            for(size_t i = 1; i < size; i++){

    надо будет, конечно, пересмотреть все места где работа разделяется на size частей, и скорректировать для size - 1.
    Ответ написан
    Комментировать