Ответы пользователя по тегу Программирование
  • Кросс-компиляция под arm и исходники ядра?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Или процесс создания linux headers настолько специфичен?

    Нет. userspace интерфейс ядра изо всех сил старается сохранять обратную совместимость. Т.е. если построить тулчейн с использованием хедеров какой-то версии ядра, собранные им бинарники будут работать (а если не будут, то есть основания зарепортить это как баг ядра) и на более новых ядрах.
    Ответ написан
    Комментировать
  • Стек и куча (память)?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    почему бы не выделить для него больше памяти?

    Действительно, почему бы и нет, учитывая, что эта настройка в руках программиста собирающего (на венде, см. cl /F) или запускающего (в *nix, см. ulimit -s) программу?

    Стек работает быстрее

    А что, уже научились освобождать выделенную на стеке память в произвольном порядке?
    Ответ написан
    Комментировать
  • Как оперативно оповещать пользователей о сбоях?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Как оперативно оповещать пользователей о сбоях?

    Рассылкой писем. Там тебе и группы пользователей, и решение готовое и проверенное, и все желающие смогут настроить перенаправление этих писем сразу в мусорку.
    Ответ написан
    5 комментариев
  • Организация памяти?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Ответ написан
    Комментировать
  • Как узнать длину числа в битах?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    как это "длина числа в битах", что нужно делать чтобы ее определить.

    Это количество бит необходимых для записи числа.
    Нужно взять следующее бОльшее целое число после логарифма числа по основанию 2. Т.е. 1 -- 1 бит, 2 -- 2 бита, 3 -- 2 бита, 4 -- 3 бита... 1023 -- 10 битов, 1024 -- 11 битов... 179,769,313,486,231,590,772,930,...,304,835,356,329,624,224,137,215 (309 цифр) -- 1024 бита, 179,769,313,486,231,590,772,930,...,304,835,356,329,624,224,137,216 -- 1025 битов...
    Ответ написан
    2 комментария
  • Почему ожидание завершения потока называется join?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Почему ожидание завершения потока называется join?

    Eсли бы слово fork не было уже занято, создание потока назвали бы fork. fork/join -- прекрасная пара.

    так сделано во всех языках программирования

    Чрезмерное обобщение -- источник абсолютно всех бед.
    Так сделано в языках ориентирующихся на POSIX, потому что в POSIX ожидание завершения потока -- это pthread_join. А в других языках сделано по-другому.
    Ответ написан
    1 комментарий
  • Какое влияние полинома на конечный результат в CRC32?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    1. Как влияет полином на CRC?

    CRC -- это остаток от деления входных данных на полином.

    2. Существует ли возможность скорректировать алгоритм или полином так что бы результаты crc были определенном диапазоне? например от 0x0 - 0xafffffff.

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

    3. Скорректируйте алгоритм так что бы результаты были всегда внутри диапазона 0x0-0xeffffffff

    Это задание а не вопрос. Делай свою домашку сам.
    Ответ написан
    3 комментария
  • Как сравнить генераторы случайных чисел на криптостойкость?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    dieharder, как уже посоветовали в комментариях. Это стандартный набор тестов для проверки качества ГСЧ.
    Ответ написан
    5 комментариев
  • Какие существуют программы для создания дампов памяти работающих приложений?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Вот как сделать дамп программы и 10 фрагментов в отдельные файлы?
    Можно ли такую программу для дампов разработать самостоятельно?

    Ключевые слова: CreateProcess/OpenProcess чтобы создать/открыть существующий процесс, VirtualQueryEx чтобы просмотреть области памяти выделенные процессом и ReadProcessMemory чтобы прочитать данные из нужных областей памяти.
    Ответ написан
    Комментировать
  • Возможно ли создать программу путем перебора символов в файле?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Ответ написан
    Комментировать
  • Как сделать вход в первую папку в скрипте sh?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    обнаружить папку в директории и осуществить вход в неё

    find -maxdepth 1 -type d -not -name '.' >& /dev/null && cd "`find -maxdepth 1 -type d -not -name '.' | head -n1`"
    Ответ написан
    1 комментарий
  • Какие ошибки в неблокируемом сокете не приводят к его закрытию?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Какие ошибки в неблокируемом сокете не приводят к его закрытию?
    Какие ошибки неблокируемого сокета можно игнорировать в сетевом программировании

    Вообще это два разных вопроса. Никакие ошибки не приводят к закрытию сокета, закрыть его можно только явно вызвав close.
    Игнорировать ошибки тоже не стоит, потому что они говорят о том, что случилось с данными переданными в send или полученными из recv. А именно, EAGAIN / EWOULDBLOCK говорят о том, что данные не были посланы или приняты, но с сокетом и с соединением (если есть) всё нормально. Кроме того, send и recv возвращают количество реально отправленных/полученных данных, и оно может быть меньше, чем было запрошено. Это не ошибка, а нормальная ситуация, её обязательно надо обрабатывать правильно.
    Почти все остальные ошибки говорят о том, что соединение оборвано и сокет остаётся только закрыть.
    Ответ написан
    1 комментарий
  • Как совместить фабрику и закон Деметры?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Заюзал в очередной раз абстрактную фабрику, и неожиданно вспомнил, что метод класса не должен обращаться к объектам, которые вернул какой-либо метод.

    Фабрика возвращает интерфейс объекта, который был специально введён, чтобы предоставить обобщённый доступ к разным типам объектов создаваемых фабрикой. Пользователи фабрики взаимодействуют только с этими интерфейсами, не с самими объектами. Т.о. пользователи фабрики не зависят от модулей реализующих конкретные объекты. Закон Деметры как раз и нужен для того, чтобы уменьшить зацепление между модулями. Следуйте духу закона, а не букве.
    Ответ написан
    Комментировать
  • Какая операция наиболее времязатратная на CPU?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Что лучше считать, чтобы CPU работал подольше?

    rep nop
    Ответ написан
    Комментировать
  • «Hello World» на машинном коде?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Как запустить такую программу?

    Сохранить в файл с расширением .com, запустить в DosBox

    Сохраняю в формате .com, пыталась запустить в DosBox - виснет

    Сделал то же самое,
    работает.
    58e1b24bb3ee46a390e305568c9d2a18.png
    Ответ написан
    Комментировать
  • Как указать версию динамической библиотеки?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    В linux есть два варианта версионирования:
    - версионирование разделяемых библиотек (см. раз, два), позволяющее одновременно устанавливать и использовать несколько версий одной и той же библиотеки
    - версионирование символов (см. раз, два), позволяющее одной разделяемой библиотеке экспортировать несколько версий одного символа, с разным содержанием/поведением.
    Ответ написан
    Комментировать
  • Что такое Байт Бит и как это работает не много о звуке?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    По части звука недавно отвечал здесь, со ссылками и примерами: Работа со звуком С++ как?
    Ответ написан
    1 комментарий
  • Проверите программу вычисления среднего арифметического на Assembler?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    чисел, которые находятся в памяти данных.

    Где загрузка данных и памяти в регистры?
    Почему все brcc переходят на add_8?
    Почему в следующем фрагменте и из младшего и из старшего байта суммы вычитается counter?
    sub sum_l,counter
        sbc sum_h,counter

    Почему из цикла деления выход только при переносе в минус? Что если разделится нацело?
    Ответ написан
    Комментировать
  • Как пользоваться stdint.h?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    uint_fast64_t number = 184467440737095511615;

    В этом месте нужно написать
    uint_fast64_t number = UINT64_C(184467440737095511615);

    Даже присваиваться не хочет, как такое выводить тоже не понятно.

    В inttypes.h есть макросы для форматирования типов из stdint.h в printf, вам нужен PRIuFAST64:
    printf("%"PRIuFAST64"\n", number);

    Ну и да, для криптографии этих типов скорее всего будет мало. Порекламирую https://gmplib.org/ для разнообразия.
    Ответ написан
    Комментировать
  • Почему это моветон?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Алексей: Евгений Шатунов:
    Люди умеющие гуглить, но не понимающие, о чём речь, дают ответы! Каждый день на тостере!
    Они могут нагуглить статью, в которой говорится примерно о том же, о чём задан вопрос, но, увы, не вполне.
    И ни в статье, ни в ответах так и не появляется правильного ответа.
    А правильный ответ -- во второй, неочевидной части пункта стандарта, описывающего выражения (C89: 3.3:2, C99: 6.5:2):

    Between the previous and next sequence point an object shall have its stored value
    modified at most once by the evaluation of an expression. Furthermore, the prior value
    shall be read only to determine the value to be stored.


    Т.е. если объект модифицируется, то читать его можно с единственной целью -- для вычисления значения, которое будет в него записано. Код a[i] = i++; читает значение изменяемой переменной i с другой целью: доступ к элементу массива по индексу, результат которого не влияет на конечное значение i -- и этого достаточно, чтобы такой код попадал в категорию UB.
    Ответ написан
    7 комментариев