Задать вопрос
  • Linker gcc PROVIDE?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    назначение ключевого слова PROVIDE в linker script

    Легко. TL;DR: это ключевое слово позволяет определить символ, если он не был определён другим способом (в линкуемых объектниках). Если был определён в объектниках -- будет использовано определение оттуда.
    Ответ написан
    Комментировать
  • Как, используя bash скрипт, посчитать размер всех файлов в директории, созданных в определенним году?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    посчитать размер всех файлов в директории, созданных в определенним году?


    - "Размер всех файлов" -- неоднозначно, вас интересует сумма размеров, или объём занятый файлами на диске? Второе обычно больше первого.

    - "В директории" -- только в ней, или во вложенных каталогах тоже?

    - "Созданных" -- невозможно на большинстве файловых систем. Можно "в последний раз изменённых".

    Итого, объём в байтах занятый на диске файлами в заданном каталоге и подкаталогах, в последний раз изменёнными в 2017, можно посчитать, например, вот так:
    find /home/user/repo -type f -newermt 2017-01-01 -not -newermt 2018-01-01 -print0 | du --files0-from=- -B 1 -c
    Ответ написан
    Комментировать
  • Где сменить имя сервера?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    /etc/hostname
    и /etc/hosts потом поправить
    Ответ написан
    Комментировать
  • Как работать с утилитой flock?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    flock -w 10 /tmp/lock.lock ./dev.sh

    Чудесно отрабатывает столько раз подряд сколько я даю это команду в консоли. Что я делаю не так? Или я неверно понял то, что делает утилита?

    Неправильно понял. В такой форме запуска она блокирует файл на время выполнения ./dev.sh, после чего освобождает его. Можно запускать так:
    flock -w 10 /tmp/lock.lock ./dev.sh &
    и тогда должна наблюдаться сериализация на /tmp/lock.lock и отвал по таймауту, если ./dev.sh работает дольше 10 секунд.
    Ответ написан
    Комментировать
  • Как прочитать конкретные байты из файла используя язык С?

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

    Обычно заводят структуру описывающую заголовок, читают в неё заголовок целиком, а потом достают интересующий член структуры. В частности, на linux для ELF определения заголовков Elf32_Ehdr и Elf64_Ehdr можно найти в /usr/include/linux/elf.h
    Вместо чтения в память из файла можно замэпить часть файла в адресное пространство процесса, см. man mmap.
    Ответ написан
    Комментировать
  • Как сместить указатель на несколько байт?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    malloc'om выделил память, но хочу я сместить указатель на 1 байт. Как это сделать?

    malloc выделяет память с выравниванием достаточным для всех встроенных типов данных. Сдвиг указателя на такую память на 1 байт это выравнивание испортит. Результатом, в зависимости от платформы, будет замедление обращений к этой памяти, ошибки выравнивания исправляемые ядром ОС, либо ошибки выравнивания, приводящие к завершению программы.
    Ответ написан
    2 комментария
  • Как из jni-метода вернуть String?

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Так вот, если повторять запрос без смены данных, даже со старым Timestamp то сервер отвечает. Та же комбинация, но с другим Timestamp и сервер не отвечает.
    Когда я пытаюсь сменить запрос, подставить другой айди юзера например, тогда сервер тоже не отвечает.
    Таким образом я пришел к выводу, что дело в этом параметре Date.

    Я бы пришёл к выводу, что в запросе есть контрольная сумма или другой способ контроля целостности.
    Ответ написан
    Комментировать
  • Как поменять местами биты в байте?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Можно, например, создать новое число, в котором на нужных местах будут стоять нужные биты старого числа.
    В чём затруднение-то, в алгоритме или в реализации?
    Ответ написан
  • Как вернуть массив строк C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как мне вернуть из функции массив


    Учи матчасть: массив из функции вернуть нельзя. Можно вернуть указатель на массив или структуру содержащую массив.

    string arr[0] = func(exp);


    Слева в этом выражении стоит массив из нуля элементов. Справа -- указатель на string.
    Что ты хотел этим выражением сказать?
    Ответ написан
    Комментировать
  • Как стереть данные с readonly filesystem диска?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    sudo /sbin/hdparm --security-erase 'NULL' /dev/sd<буква устройства ssd>
    Ответ написан
    6 комментариев
  • Как удалить смерженную ветку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как видите, ответвление 91d2463, 3e391bf по-прежнему существует. Помогите пожалуйста от него избавиться.

    От него нельзя избавиться не переписывая истории master. Удаление ветки -- это удаление линии истории, которая заканчивается коммитом 91d2463. Но этот коммит уже замёржен в master, удаление ветки на вид master никак не повлияет.

    Я хотел бы избавиться от ответвления: 91d2463, 3e391bf чтобы история выглядела как одна линия.

    Если хочется переписать master и получить линейную историю можно сделать git rebase 3a0067f.
    Ответ написан
    Комментировать
  • Зачем использовать квалификатор const в возвращаемом значении?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    const String& String::test(const String&)const;
    Зачем в возврат указывать квалификатор const?

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    MOV AL, ARRAY_X[SI]
    IMUL BX

    Это неправильно: IMUL BX умножает AX на BX, а загружается из памяти только AL. Нужно либо знаково расширять AL в AX, либо, что логичнее, умножать AL на BL.
    Ответ написан
    8 комментариев
  • Почему происходят соединения по IPv6?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему у сервера есть соединения IPv6

    скорее всего потому что приложение, в данном случае апач, использует IPv4-mapped IPv6 адрес.
    Можно посмотреть в /proc/net/tcp6, там эти адреса выглядят так:
    sl  local_address                         remote_address                        st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
    14: 0000000000000000FFFF00001F44CB0A:A5A2 0000000000000000FFFF00004B44CB0A:06B4 01 00000000:00000000 02:000000F6 00000000  1000        0 20787517 2 ffff8e7add433800 20 4 1 10 -1

    т.е. 96 старших битов адреса -- ::FFFF:0:0, 32 младших бита -- обычный IPv4 адрес.

    Вот пример кода, который, если его скомпилировать и запустить, открывает сокет ipv6, к которому можно присоединиться как по ipv4 так и по ipv6:
    $ ./ipv6 &
    $ nc 127.0.0.1 13330 &
    $ lsof -i6
    ipv6      18422 jcmvbkbc    3u  IPv6 21018438      0t0  TCP *:13330 (LISTEN)
    ipv6      18422 jcmvbkbc    4u  IPv6 21018439      0t0  TCP localhost:13330->localhost:36196 (ESTABLISHED)
    Ответ написан
    2 комментария
  • Есть ли архиватор ZIP для Mas OS X - использующий ВСЕ ядра процессора?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    pigz -- это хорошее решение.
    у меня нет админских прав для установки pigz

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

    тогда, скорее всего, суждено сидеть и грустно смотреть.
    Ответ написан
  • Почему эта функция возвращает объект (перегрузка операторов)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Вопрос: в return я умножаю два int, функция возвращает копию Factory, почему так?

    Потому что ты так определил этот оператор. Написал бы int Factory::operator * -- всё было бы по-другому.
    Если твой вопрос "почему это компилируется", то ответ -- потому что у Factory есть не-explicit конструктор, который можно вызвать с параметром типа int. Этот конструктор создаёт объект возвращаемый из оператора *.
    Ответ написан
    1 комментарий
  • Какие существуют программы для создания дампов памяти работающих приложений?

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

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    vim + avr-gcc + make + gdb
    Ответ написан
    Комментировать
  • Как в Bash загрузить несколько файлов и склеить в один?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    mkfifo /tmp/content/$i
      curl -s "${urls[$i]}" > /tmp/content/$i &

    Bash делает, что-то невероятное - вместо N параллельных запросов, каждый из которых выполнится за 1-2 сек (а значит вся закачка+сборка займет пару секунд), он делает запросы последовательно

    Ну учи матчасть, что ли. Ты заставил curl выводить результаты в FIFO вместо того, чтобы выводить их в файлы, а у FIFO совсем маленький буфер, после заполнения которого запись в FIFO блокируется, пока из него не начнётся чтение.
    Если уж хотелось параллельности, можно было сделать так:
    rm -rf /tmp/content
    mkdir /tmp/content
    
    for i in ${!urls[@]}; do
      curl -s "${urls[$i]}" > /tmp/content/$i &
    done
    
    wait
    rm -f /tmp/output
    
    for i in ${!urls[@]}; do
      cat /tmp/content/$i >> /tmp/output
    done
    Ответ написан
    1 комментарий