Задать вопрос
  • Как разархивировать архив tar.gz, в котором архив и т.д?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Studencheskaya32 --to-command -- это прикольно.
    Но мне больше нравится решение с -O:
    tar -xzvOf archive.tar.gz | tar -xzvO | tar -xzvO | … | tar -xzvO | tar -xzv
    Ответ написан
    Комментировать
  • Можно ли записать структуру в файл используя basic_ofstream?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Можно ли записать структуру в файл используя basic_ofstream?

    Можно, но для этого не нужно делать её тип аргументом шаблона basic_ofstream.
    Ответ написан
  • Что за странная константа?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Зачем он для такой строчки на 69, 70ой строчке добавляет к j такую странную константу.

    В конечном коде выглядит действительно загадочно. Если вызывать компилятор с ключом -fdump-tree-all (фиг знает, как сделать это на godbolt.org, я проверял локально), то уже в самом первом дампе можно увидеть, что if (arr[j - 1] > arr[j]) превращается в это:
    if (*(arr + ((sizetype) j + 1073741823) * 4) > *(arr + (sizetype) ((unsigned int) j * 4)))

    1073741823 -- это 0x3fffffff, 30 единичных бит, т.е. 30-битная -1. Дальше j + 1073741823 превратилось в
    add     r3, r3, #1073741824
    subs    r3, r3, #1

    т.е. в j + 1073741824 - 1. После умножения на 4 старшие два бита j теряются, но в чём смысл использования 30-битной -1 вместо 32-битной -- мне непонятно.
    Поскольку константа появляется ещё до начала архитектурно-зависимых преобразований, она фигурирует в выводе для всех 32-битных архитектур поддерживаемых gcc. Интересно, что это началось между gcc-4.6 и gcc-5, до этого в этом месте генерировался просто sub r3, r3, #1. Ещё интересно, что даже с -O2 эта константа остаётся в сгенерированном коде, а исчезает только с -Os. Выглядит как регрессия.
    Ответ написан
    Комментировать
  • Как правильно инициализировать массив в C?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В этом коде проблема не в том, что массив d не инициализирован, а в том, что колическтво итераций цикла вывода массива d не зависит от того, сколько элементов было занесено в этот массив. Правильным решением было бы как-то их связать, например так:
    int i = 0, n;
    while (piece != NULL)
    {
        d[i] = piece;
        piece = strtok(NULL, " ");
        i++;
    }
    n = i;
    for (i = 0; i < n; i++) {
        if(i%2==0)
            printf("%s ",d[i]);
    }
    Ответ написан
    1 комментарий
  • Почему возникает такая проблема с динамическим массивом (Язык Си)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    ошибка возникает на моменте сдвига элементов. Как ее исправить?
    data = (Student*)realloc(data, count * sizeof(Student));
    
        for (int i = count; i > offset; i--)
        {
            data[i] = data[i - 1];
        }

    Этот код пишет за конец массива, потому что если в массиве count элементов, то последний имеет индекс count - 1. Этот цикл должен быть таким: for (int i = count - 1; i > offset; i--)
    Ответ написан
    Комментировать
  • Почему система продолжает работать после выполнения команды?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему при выполнение данной команды ОС продолжает работать до момента перезагрузки?

    Я бы не сказал, что она "продолжает работать", но у нас, видимо, разные определения понятия "работать". Никакие новые исполняемые файлы в такой системе не могут быть запущены, потому что никаких файлов нет, а запущенные процессы -- да, могут продолжать выполняться и форкаться, пока им от файловой системы не нужны операции использующие имена файлов.
    Ну и, справедливости ради, надо отметить, что место занятое открытыми на момент выполнения команды rm -rf / файлами не будет освобождено и их содержимое не будет потеряно, пока они не будут закрыты. Можно будет продолжать читать и писать в них, в т.ч. ядро будет продолжать использовать их для реализации механизмов виртуальной памяти.
    Ответ написан
    Комментировать
  • Почему не работает функция fscanf?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    в функции main, почему то выводит мусор

    Значит дочитывает файл до конца и без ошибок конверсии. Такой формат: %32[^,] может записать до 33 байт (32 символа из файла + 0), что не влезет в такое поле: char title[32];. Если файл в кодировке utf-8, то байтов в полях может быть больше чем символов.
    Ответ написан
    Комментировать
  • Fibre Channel FC-2 Programming, как отправлять произвольные кадры?

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

    В linux есть драйвер scsi/qla2xxx, можно заглянуть в его список поддерживаемых PCI ID, чтобы понять, подходит ли он для этой платы. Если подходит, то можно почитать, как он взаимодействует с железом.
    Ответ написан
    Комментировать
  • Как переделать initrd (Altlinux 8 SP)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    нужно выкинуть все лишнее из /lib/modules/5.10.144-std-def-alt0.c9f.2

    Это сравнительно легко сделать: нужно оставить только те модули, которые видны в lsmod после успешной загрузки.
    Ответ написан
    Комментировать
  • Почему не удается подключиться к Postgres(VirtualBox) из хостовой машины?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    в pg_hba.conf должно быть что-то типа того:
    host all all 0.0.0.0/0 md5
    host all all ::0/0 md5

    для приёма любых подключений с любого адреса.
    Ответ написан
  • Как подключить роутер 12в 1,5а к автомобильному аккумулятору?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как подключить роутер: напрямую от акума или через какой-то преобразователь, чтобы брал 12в и выдавал 12в, а ток понижал до 1,5а?

    Можно напрямую. Он сам возьмёт нужные ему 1.5А.
    Ответ написан
    8 комментариев
  • Что делать с проблемой Job for apache2.service failed?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    дек 10 21:56:09 podd apachectl[2466]: AH00526: Syntax error on line 8 of /etc/a…
    дек 10 21:56:09 podd apachectl[2466]: Invalid command 'AssignUserID', perhaps m…

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как поменять порядок битов в байте C?

    Посмотреть какой бит стоит на каждом месте и поставить такой же на каждом новом месте?
    Можно обойтись без сдвигов. Удобно пользоваться битовыми операциями, но можно обойтись и без них. Это можно сделать одной чистой арифметикой. Для ускорения можно анализировать не отдельные биты а группы -- например по 2 или по 4 и выполнять для них замену по таблице.
    Ответ написан
    Комментировать
  • Почему переопределение метода без virtual -- это не переопределение?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если в официальной доке с++ где-то написано "переопределение возможно тогда и только тогда, когда есть virtual у метода базового класса"

    Написано, ровно это: eelis.net/c++draft/class.virtual#2

    то почему именно так?

    Потому что это определение термина function override в C++. Для других вариантов взаимодействия имён функций есть другие термины.
    Ответ написан
    Комментировать
  • Как удалить все строки до n через sed?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как отредактировать это, чтобы работало?
    получаю n через grep
    Далее пытаюсь понять как удалить через sed все строки от 1 до n

    Можно всё это выполнить в одном скрипте sed:
    sed -i '0,/string:/d' file1
    Ответ написан
    2 комментария
  • Почему так читается текстовый файл?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему-то как я не стараюсь всё записывается только в sportsmens[i].full_name,

    Поскольку ты используешь fscanf, а поля в твоём файле разделены пробелами, формат fscanf должен включать в себя пробелы чтобы избавиться от разделителей. Кроме того, имеет смысл проверить, что setlocale возвращает не-NULL, иначе он не повлияет на десятичный разделитель (и %f не сможет прочитать число с плавающей точкой записанное как 12,12).
    Ответ написан
    4 комментария
  • Почему возникает ошибка при компилации gtest?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    не могу понять в чем проблема
    ошибка: undefined reference to `CheckUP::checkUP(std::__cxx11::basic_string, std::allocator >&, float&)'

    Проблема в том, что ты не слинковал свой тест с кодом реализующим класс CheckUP.
    Ответ написан
  • Почему два идентичных файла ведут себя по разному?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Похоже на то, что hare run не нравятся виндовые концы строк (CR/LF). Можно использовать утилиту dos2unix для приведения концов строк в понятный hare вид (LF).
    Ответ написан
    2 комментария
  • Что не так с функцией на C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    error C2835: user-defined conversion 'operator`double'' takes no formal parameters

    Он говорит тебе о том, что такая перегрузка: operator double (int limit) невозможна. Вторая ошибка -- это следствие первой.

    Определим в объекте Group две функции с одинаковым именем, например double Age(); и double Age(int limit);.

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Но не получается

    Ну да, не получается, потому что ты не понял алгоритма по ссылке до конца, потому что его изложение оставляет желать лучшего.
    - zeroCounter как я понял нужен для реализации шага "Remove leading "0" from X'", но эта реализация неправильная. К тому же она находится вне цикла while ( X != "0" ).
    - for (b in bits of X) // msb to lsb говорит о том, что b должен пробегать двоичные цифры, от старшего разряда к младшему, в формуле R = 2*R + b фигурирует значение разряда, а не его индекс, как в твоём коде.

    R, как я понимаю, должна быть очередная десятичная цифра получающегося числа?

    Это верно. Очередной младший разряд.
    Ответ написан
    Комментировать