• Как использовать одну переменную в нескольких make файлах?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    У меня есть два make-файла, первый вызывает второй.
    Мне хотелось бы получить некоторые данные из второго make-файла.

    Не предусмотрено такое логикой make, разве что через eval это можно накостылить. Обычно, когда нужна тесная связь между разными Makefile, один из них подключают в другой (и получают большой логический Makefile поделённый на несколько файлов).
    Ответ написан
    Комментировать
  • Как вывести индикацию speed ethernet в linux kde?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Готов даже как-то поучаствовать в разработке/допиливанию net_applet, но нигде не нашёл не то что исходников, но и какого-то места или человека, кому задать такой вопрос.

    Вот исходник пакета drakx-net из mageia 7: sophie.zarb.org/rpms/1a149924e962ca57b572b11802f8f...
    В spec-файле есть URL с которого берутся исходники: gitweb.mageia.org/software/drakx-net
    Ответ написан
    1 комментарий
  • Не запускается KGpg?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    при запуске gpg из консоли он не создается (а должен).

    Запустить gpg под strace: strace -if gpg.
    spoiler
    При отсутствии каталога .gnupg я вижу в логе следующее:
    [00007f192946a5c7] access("/home/test/.gnupg", F_OK) = -1 ENOENT (No such file or directory)
    [00007f192946a0d7] mkdir("/home/test/.gnupg", 0700) = 0


    Поделиться выводом strace, если ничего подозрительного не бросается в глаза.
    Ответ написан
    Комментировать
  • Как понять чего не хватает системе при сборке wine?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Как понять чего конкретно не хватает

    если сообщения об ошибке в консоли недостаточно, то в каталоге, где выполнялся configure остаётся файл config.log с подробным логом действий, текстом программы, которая сгенерировала ошибку, командной строкой компилятора и его сообщением об ошибке. Можно посмотреть туда.
    Ответ написан
    Комментировать
  • Книга о последних версиях ядра Linux?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Например, в них нет файла kernel/sched.c

    например git log -- kernel/sched.c легко объяснит, что с этм файлом случилось.

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

    совсем не критично, потому что то, что написано в книге имело место в прошлом, а с помощью git можно проследить, что с тех пор изменилось.
    Ответ написан
    Комментировать
  • Почему не выводится последнее значение?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    "11 22 22 33 33 33"
    Должно вывестись:
    "11 occurs 1 times
    22 occurs 2 times
    33 occurs 3 times"
    но "33 occurs 3 times" не выводится в консоль. В чем может быть причина?

    if (val == currVal) ++cnt;
                else 
                {
                    std::cout << currVal << " occurs " << cnt << " times " << std::endl;

    В том, что после 3го "33" по-прежнему выполняется ветка if (val == currVal) ++cnt;.
    Ответ написан
    3 комментария
  • Срываются ли вызовы функций выгрузки библиотек?

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

    Если приложение валится от необработанного исключения, то, согласно описанию RaiseException, действие по умолчанию -- вызов ExitProcess. При завершении приложения через ExitProcess у загруженных библиотек будет вызван DllMain с кодом DLL_PROCESS_DETACH.
    Ответ написан
    Комментировать
  • Почему в VIM не работает перемещение вверх и вниз?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Перемещение по стрелками и буквам ( j k ) вниз и вверх не работает.

    в любом файле или в одном конкретном? Может быть этот файл состоит из одной единственной строки? Что о нём говорит wc -l <имя файла>?
    Ответ написан
    Комментировать
  • Как сортировать данные структуры по дате, если дата задаётся символьной строкой?

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

    Строки вида yyyymmdd можно сортировать с помощью qsort сравнивая их функцией strcmp.
    Ответ написан
    Комментировать
  • Как можно игнорировать элементы строки?

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

    ты написал что-то непонятное.

    надо сравнить если символ не входит в диапазон 31h-39h, то надо идти дальше по элементу массива

    это можно сделать например так:

    metka:  
    
        mov ax,0
        mov al, StringT[si]
        sub al, 49
    
        jl next      # перейти к следующей цифре, если код текущей меньше '1'
        cmp al, 9
        jnl next     # перейти к следующей цифре, если текущая больше 9
    
        mov bl, al
        shl bl, 1 ;умножение на 2, т.к. размер адреса - 2 байта
        
        xor ax, ax
        
        mov dx, offset List[bx]
        mov ah, 09h
        int 21h
    next:
        add si, 1
        loop metka
    Ответ написан
  • Почему вылезает сообщение "make: «build» не требует обновления"?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Почему вылезает сообщение «make: «build» не требует обновления»?

    ну и для ответа на оригинальный вопрос: потому что правило
    build: $(SOURCES)

    говорит, что каталог build зависит только от исходных файлов. Команды mv *.o ./build и rm -rf build/* делают его новее исходников, поэтому make считает, что обновлять его не надо.
    Ответ написан
    Комментировать
  • Как "распаковать" параметры из переменной в bash-скрипте?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Так происходит, потому что подстановки в bash нерекурсивные. Т.е. если результат подстановки создаёт новую конструкцию, с которой произошла бы подстановка, будь она записана в исходном тексте скрипта, bash не будет её интерпретировать. Это ограничение можно обойти с помощью функции eval, которая интерпретирует свой параметр по всем правилам bash. Т.е. пример из вопроса можно записать так:
    du -sh ~ --exclude=$(eval echo $HOME/{$excludes})
    Оборотная сторона такого решения -- $excludes становится частью скрипта, и если он контролируется извне, туда легко можно всунуть rm -rf /* как побочный эффект.
    Ответ написан
    1 комментарий
  • Как добавить лист в лист при помощи cons?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    (cons 1
       (cons
         (cons 2 (cons 3 '()))
         (cons (cons 4 (cons 5 '())) '())))
    Ответ написан
    Комментировать
  • Почему время выполнения следующих SIMD инструкций такое?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Я не нашёл ничего почитать, но нашёл рекомендацию использовать llvm-mca, и для вариантов кода использующих SSE/AVX она дала мне показатели производительности которые совпали с наблюдаемыми на практике. Cоответственно, при желании можно почитать исходники llvm-mca (и добраться до модели пайплайна где-то в недрах llvm).

    Почему пятый вариант не выполняется в 4 раза быстрее, чем первый?

    Потому что скорость выполнения связана со сложностью опкодов. Так, выполнение vmulpd в пятом варианте занимает 4 такта и полностью перекрывается с остальными инструкциями цикла, так что даже нет смысла делать его короче, меняя add+cmp+jne на sub+jne.
    Ответ написан
    2 комментария
  • Как правильно вывести массив символов?

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

    программа выводит пустую строку, потому что в tmp -- пустая строка. Потому что i = strlen(str) помещает в i индекс 0-терминатора строки str, а не последнего символа перед ним. И в конце строки tmp сейчас нет 0-терминатора, так что puts(tmp) выведет мусор после перевёрнутой строки, если поправить инициализацию i.
    Ответ написан
    3 комментария
  • Как понять, почему не работает ни один браузер в linux?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    можно попробовать запустить firefox под strace а потом внимательно почитать лог начиная с конца в поисках ошибок доступа. Типа того: strace -fvo trace firefox
    Ответ написан
    Комментировать
  • Можно ли эмулировать Raspberry Pi 4 в Qemu?

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

    С целью "чтобы не тратить время" лучше осилить кросс-компиляцию. Потому что производительность эмулируемого на x86 arm-устройства так себе.
    Ответ написан
    Комментировать
  • Почему при работе с бинарными файлами .exe вызвал срабатывание точки останова СИ?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Первая функция работает, а при вызове второй функции - "срабатывание точки останова" при присвоении переменной fp указателя на поток - при вызове функции fopen(). Помогите разобраться с проблемой не понимаю, где ошибка.

    Вторая функция как-то очень сильно завязана на первую: arr она не инициализирует и считает, что там достаточно места для содержимого файла. Но это всё происходит после заявленной проблемы.
    В первой функции вызовы gets читают строчки неограниченной длины в какие-то поля твоей структуры. Определения структуры ты не привёл, но мой магический шар говорит, что gets вполне может вылезти за пределы полей в которые он читает и поломать кучу. Можно попробовать заменить gets(x) на fgets(x, sizeof(x), stdin).
    Ответ написан
  • Как создать массив с ведущими нулями в Bash?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    for i in ${hr[@]}; do
    echo ${hr[i]}
    done

    Bash думает, что если число начинается с 0, то оно в восьмеричной системе счисления и числа 8 в ней нет. Что делать?

    Выбрать, что же именно у тебя лежит в массиве -- строчки или индексы. И если выбрал строчки, то не интерпретировать их тут: echo ${hr[i]} как индексы. А если выбрал индексы, то следовать правилам написания чисел.

    Я бы сделал так:
    #!/bin/bash
    
    hr=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
    
    for i in ${hr[@]}; do
    echo $i
    done
    Ответ написан
    Комментировать
  • Qemu как правильно запускать vm?

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

    -nographic -serial none -monitor none
    есть для mipsel какие либо акселераторы, типа kvm?

    Есть, но надо понимать, что kvm требует, чтобы гостевая архитектура совпадала с хостовой, т.е. qemu для этого нужно запускать на mips-хосте.
    Ответ написан