Задать вопрос
  • Как написать сортировку пузырьком с помощью кодов процессора dp32?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Давай разбираться.

    Как написать программу на VHDL

    VHDL -- это язык описания железа (Hardware Description Language). С его помощью можно описать как будет работать электрическая схема. Выглядит он примерно так.

    с помощью кодов процессора dp32

    Машинный код процессора -- это программа в двоичном виде для этого процессора. Байты машинного кода можно поместить в память и выполнить целевым процессором.
    Отдельное слово про dp32. Что за dp32?

    Теперь попробуй для начала объяснить нам, что именно ты хочешь написать.
    Ответ написан
  • Выполнение shell-команды при коннекте к dropbear. Как?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    С sshd все было бы просто: ssh ip_remote command && exit.

    Ну неплохо было бы команду в кавычки взять, как минимум, если вы хотели exit выполнить на удалённой машине: ssh ip_remote "command && exit" . Хотя непонятно, зачем там exit.

    Но с dropbear у меня такой фокус не выходит, к сожалению.

    Какие симптомы?
    Ответ написан
    3 комментария
  • Как сделать вход в первую папку в скрипте sh?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    обнаружить папку в директории и осуществить вход в неё

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    find -maxdepth 1 -type d -not -name '.' -print0 | xargs -0 du -sh
    Ответ написан
    Комментировать
  • Как создать хэш таблицу с помощью си?

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

    Да.

    По крупицам собираю информацию в гугле относительно динамических списков и массивов структур, но картина пока не складывается :(


    38000000 результатов, нифига себе "по крупицам".

    Подскажите как это реализовать и\или где можно почитать о создании таких вот вещей?

    Тут уже читал?
    Ответ написан
  • Как заставить iconv работать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как заставить iconv работать?

    Я в вашем коде вижу две ошибки и несколько странных мест. Ошибки:
    - вы создаёте конвертор на каждый вызов parse_callback, но закрываете его только по событию EVENT_RUNE.
    - вы выделяете память (два calloc в parse_callback) и не освобождаете её. При том, что динамическая память вам вообще здесь не нужна.
    Странные места:
    - printf("result: '%s'\n", converted_start); в converted_start -- utf8...
    -
    fprintf(stdout, "debug: event = RUNE, data = %c\n", iso);
    iso -- это во-первых массив, а во-вторых, массив символов CP866.
    Как минимум один (а скорее всего оба) из этих printf не выведет того, что вы ожидали.

    parse_callback можно переписать следующим образом:
    void parse_callback( struct parser_event *pe, void *userdata )
    {
        switch ( pe->event ) {
    
            case EVENT_RUNE: {
                char *iso = &pe->rune;
                char out[10] = {0};
                char *converted = out;
                size_t ibl = 1;
                size_t obl = sizeof(out);
                iconv_t foo = iconv_open("CP866", "UTF-8");
                int ret;
    
                if((int) foo == -1) {
                    if (errno == EINVAL) {
                        fprintf(stderr,
                                "Conversion is not supported");
                    } else {
                        fprintf(stderr, "Initialization failure:\n");
                    }
                    break;
                }
                ret = iconv(foo, &iso, &ibl, &converted, &obl);
    
                // if iconv fails it returns -1
                if(ret == (iconv_t)-1) {
                    perror("iconv");
                } else {
                    // otherwise the number of converted bytes
                    printf("%i bytes converted\n", ret);
                    printf("result: '%s'\n", out);
                }
                iconv_close(foo);
                fprintf(stdout, "debug: event = RUNE, data = %c\n", pe->rune);
                break;
            }
    
            case EVENT_FONT:
                fprintf( stderr, "FUCK FONT\n");
                fprintf( stdout, "debug: event = FONT, data = %d\n", pe->font_id );
                break;
    
            case EVENT_ERROR:
                fprintf( stderr, "FUCK ERROR\n");
                fprintf( stdout, "debug: event = ERROR\n" );
                break;
    
            default:
                fprintf( stdout, "debug: event = UNKNOWN\n" );
        }
    }
    Ответ написан
  • Можно ли слинковать 32-битный .so с 64-битным?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Правда?

    Правда.

    может есть лазейка

    Нет. Без шансов.
    Ответ написан
    Комментировать
  • Как убрать MINGW64 в терминале?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как убрать MINGW64 в терминале?

    Отредактировать переменную окружения PS1.
    Чтобы shell запускался с другим приглашением отредактировать место где эта переменная определена -- ~/.bashrc или ~/.bash_profile.
    Ответ написан
  • Как настроить raspbian что бы постоянно быть root и не печатать sudo?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    теперь при запуске любой программы из меню, у меня открывается консоль и пишет
    [*] This script must be run as root

    Вопрос в том, понимаете ли вы, что так быть не должно, или нет.
    Если да -- перейти к следующему пункту, если нет -- то я предлагаю вам прочитать документы из этого списка, пока такое понимание к вам не прийдёт.
    Как сделать так, что бы все запускалось из меню и не требовало каждый раз писать sudo?

    Разобраться с тем, почему так происходит и исправить.
    Ответ написан
    Комментировать
  • G++ версий 6-7, собирает не исполняемые файлы, а разделяемые библиотеки. Почему?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    g++ последних версий в linux собирает разделяемые библиотеки, а не исполняемые файлы

    Регулярно собираю g++ (правда не под x86), ничего такого не наблюдаю.

    В /bin большинство софта собрано как разделяемые библиотеки. Ощущение, что я что-то пропустил.

    Это не разделяемые библиотеки, это position-independent executable, исполняемые файлы с релокациями. В дистрибутиве включили -pie по умолчанию, чтобы рандомизировать пользовательское адресное пространство. См. https://wiki.ubuntu.com/Security/Features#Built_as_PIE
    Ответ написан
    Комментировать
  • Как распаковать или переименовать неизвестную папку на сервере под Linux?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Видится мне, что есть два варианта:
    1. Распаковать папку с неизвестным названием.
    2. Переименовать папку с неизвестным названием.

    Третий вариант: при распаковке архива tar отрезать один уровень каталогов опцией --strip-components=1
    Ответ написан
    Комментировать
  • Как запустить tcpdump в фоне?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Возник ряд вопросов: как завершить конкретный процесс tcpdump, запущенный вчера?

    Сразу после запуска tcpdump вчера отправить его PID в файл. Сегодня прочитать содержимое этого файла и убить процесс с этим номером, если это всё ещё tcpdump.

    Как запустить tcpdump в фоновом режиме?

    tcpdump <опции> >& /dev/null &
    Ответ написан
  • Почему в ioports и iomem одни нули?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Потому что вот такой код в kernel/resource.c занимается приготовлением этих значений:
    if (file_ns_capable(m->file, &init_user_ns, CAP_SYS_ADMIN)) {
                    start = r->start;
                    end = r->end;
            } else {
                    start = end = 0;
            }

    Т.е. чтобы получить не нули нужно иметь CAP_SYS_ADMIN.
    Это изменение появилось в ядре с версии 4.6:
    commit 51d7b120418e99d6b3bf8df9eb3cc31e8171dee4
    Author: Linus Torvalds <torvalds@linux-foundation.org>
    Date:   Thu Apr 14 12:05:37 2016 -0700
    
        /proc/iomem: only expose physical resource addresses to privileged users
    
        In commit c4004b02f8e5b ("x86: remove the kernel code/data/bss resources
        from /proc/iomem") I was hoping to remove the phyiscal kernel address
        data from /proc/iomem entirely, but that had to be reverted because some
        system programs actually use it.
    
        This limits all the detailed resource information to properly
        credentialed users instead.
    
        Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Ответ написан
    Комментировать
  • Почему указатели разные?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    make_request_fn определён как
    typedef blk_qc_t (make_request_fn) (struct request_queue *q, struct bio *bio);

    соответственно ваша функция filter_mrqfn должна возвращать blk_qc_t.
    Ответ написан
  • Какие ошибки в неблокируемом сокете не приводят к его закрытию?

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

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

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

    Т.е. вы знаете наверняка, что y имеет другое значение? Потому что, на мой взгляд, логика изменения y в цикле немного странная.
    Ответ написан
    2 комментария
  • Assembler окно с кнопками Yes No?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как примерно решать и что надо использовать

    MessageBox, параметром uType можно выбрать, какие будут показаны кнопки, код возврата соответствует нажатой кнопке.
    Ответ написан
    Комментировать
  • Как заставить grub2 брать образы рамдиска и ядра с корня?

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

    root относительно которого grub будет искать образы задан в set root='hd0,msdos1', вы ведь его не поменяли? Для /dev/sda2 там должно быть hd0,msdos2. И вдобавок должен быть загружен модуль GRUB для той файловой системы, которая на /dev/sda2 чтобы он смог оттуда что-то загрузить.
    Ответ написан
    Комментировать
  • Возможен ли перенос и использование библиотек с linux в windows под msvc?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Реально ли осуществить перенос библиотек с linux под виндовс

    Более чем.
    а после использовать их в Visual Studio через winapi?

    При чём тут winapi?
    Ответ написан
  • Как правильно делать пул реквесты в Open Source?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Pr не приняли, но и ничего не ответили.

    Вот тут и нужно было спросить, в чём дело -- код мейнтейнеру не понравился или оформление.
    Ответ написан
    3 комментария