проблема в том, что вместо массива символов программа выводит просто пустую строку.
i = strlen(str)
помещает в i индекс 0-терминатора строки str, а не последнего символа перед ним. И в конце строки tmp сейчас нет 0-терминатора, так что puts(tmp)
выведет мусор после перевёрнутой строки, если поправить инициализацию i. Первая функция работает, а при вызове второй функции - "срабатывание точки останова" при присвоении переменной fp указателя на поток - при вызове функции fopen(). Помогите разобраться с проблемой не понимаю, где ошибка.
gets
читают строчки неограниченной длины в какие-то поля твоей структуры. Определения структуры ты не привёл, но мой магический шар говорит, что gets вполне может вылезти за пределы полей в которые он читает и поломать кучу. Можно попробовать заменить gets(x)
на fgets(x, sizeof(x), stdin)
. 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
MaxSymb Db 9
RealSymb Db ?
StringT db 1 dup (' ')
StringT db 9 dup (' ')
, иначе ввод затрёт то что там дальше в памяти лежит.я пытался и делать так mov cx, InBuff[0] , mov cx, InBuff[1] без разницы.
mov cl, [RealSymb]
len equ $ - StringT - не выходит, тоже 1 выдаёт
Client arr_all[numeric_limits<int>::max()];
main.cpp:(.text+0x527): перемещение обрезано по месту: R_X86_64_32 у неопределённого символа «.bss»
main.cpp:(.text+0x536): перемещение обрезано по месту: R_X86_64_32 у неопределённого символа «.bss»
-mcmodel=large
, но там будут дальнейшие проблемы во время выполнения и это точно не нужно.она не показывает день и время когда была введена команда
export HISTTIMEFORMAT='%F %T '
в ~/.bashrcКак в nasm можно выполнить смещение?
[string + cx]
invalid effective address
Правильно ли я понимаю, что после того как биос загрузил загрузчик в память, тот в свою очередь должен посекторно считывать диск и загружать считанное в память.
Есть ли у регистров адреса как у памяти?
Почему нет?
Почему бы сразу не блокировать поток вызовом read и не ждать пока данные будут доступны
(в голову приходит только один вариант, когда необходимо принудительно прихлопнуть поток и если использовать таймаут, то не требуется прерывать системный вызов, хотя если принудительно завершить поток, то ядро по идее само прервет системный вызов)
В момент, когда функция read блокирована (по факту системный вызов (syscall) не вернул результат в пользовательское пространство), то при вызове другого системного вызова того же драйвера, например, write, необходимо ли в самом драйвере синхронизировать общие данные, которые используются и в read и в write?
Или выполнение системных вызовов как-то гарантировано регламентировано и прерывания отключены
GIT_EDITOR
This environment variable overrides $EDITOR and $VISUAL.
It is used by several Git commands when, on interactive mode,
an editor is to be launched.
See also git-var(1) and the core.editor option in git-config(1).