Если я использую printf("asd"), то весь текст в кавычках будет выведен на экран и записан в лог файл. Вот такая команда: './a.out > file.log'.
./a.out > file.log не выведет ничего на экран, всё будет перенаправлено в файл. но 2) сам printf об этом ничего не знает. Он выводит данные в поток стандартного вывода, куда они перенаправляются потом -- не его дело. 3) оператор > перенаправляющий вывод -- это инструкция командной оболочке как запускать программу, к самой программе отношения не имеет.Есть ли какая другая команда вывода, которая будет текст выводить только в терминал, без записи в файл?
./a.out, без каких-либо изменений в коде. гугля, находил предложения с LD_LIBRARY_PATH=... . Но разве флаг -L при компиляции не служит той же самой цели?
-L говорит о том, где искать любые библиотеки во время линковки приложения. LD_LIBRARY_PATH говорит о том, где искать динамические библиотеки во время выполнения. Информация из -L со времени линковки нигде не сохраняется. Можно зашить в слинкованный бинарник пути к библиотекам, но это делается другими опциями (см. опцию линкера -rpath). Во время выполнения динамические библиотеки могут быть где угодно, не обязательно там, где они были во время линковки.Как создать динамическую библиотеку, которая зависит от другой библиотеки?
readelf -d libwindow.so | grep NEEDED то там должна быть ссылка на libSDL. Твоя проблема в том, что сама libwindow.so не найдена. return x | y;, то она не может никогда вызвать send, а программа-сервер должна просто завершаться после расчёта НОД.recv, но поскольку ты её не обрабатываешь, то дальше она будет пытаться выводить ответ из буфера в который не было ничего принято.не знаю, как правильно найти НОД в данном случае:
return x | y нужно просто использовать x | y в itoa. Res и всё что с ним связано можно выкинуть, поскольку оно всё равно никак не используется.char *str = malloc(0);
Правильно ли я понимаю, что в str находится начало выделянно памяти на 0 байт
If the size of the space requested is zero, the behavior is implementation-
defined: either a null pointer is returned, or the behavior is as if the size were some
nonzero value, except that the returned pointer shall not be used to access an object.а дальше идет запись символов в память, которая для нас не предназначалась?
Для процессора x86 с word 32bit. Как будут выполняться fetch?
Хочу ответ в таком формате.
почему процессор обращается 2 раза к невыравненным данным?
с чем могут возникнуть проблемы
Я пытаюсь загрузить 64-битное ядро по адресу 0x1000
AllocatePages только возвращает адрес выделенной памяти по адресу в последнем параметре. Т.е. куда будут загружены сегменты ELF сказать нельзя и, соответственно, без динамической релокации этот ELF скорее всего работать не будет.AllocatePages будет то же расстояние, что и между сегментами ELF, в то время как кодогенерация с флагом -fPIE вполне может считать это расснояние неизменным. Такой ELF нужно загружать в один большой блок памяти, сохраняя расстояние между сегментами.header.e_entry -- это прыжок в неизвестность. как мне модифицировать мою программу, чтобы она могла определять потоки и корректно отправлять их коллектору?
по умолчанию int является signed
Irrespective of the choice made, char is a separate type from the
other two and is not compatible with either.signed char -- это, пожалуй, единственное не вызывающее вопросов применение ключевого слова signed в C-коде написанном человеком. В остальных случаях роль signed -- чисто декоративная. почему программа завершилась? Вмешалась ОС? Но если так, то почему?
Почему я не могу поменять значение самого указателя (ведь указатель - это всего лишь ссылка на адрес памяти, а не на значение).
a = (int *)10;могу ли я указателю дать ссылку на конкретную ячейку в памяти?
получаю ошибку, ведь вряд ли адрес памяти у указателя хранится в виде 16-ричного целочисленного литерала.
int *a = (int *)0x0061FF18; Почему так происходит?
Any function with internal linkage can be an inline function. For a function
with external linkage, the following restrictions apply: If a function is declared
with an inline function specifier, then it shall also be defined in the same translation
unit. If all of the file scope declarations for a function in a translation unit include
the inline function specifier without extern, then the definition in that translation
unit is an inline definition. An inline definition does not provide an external
definition for the function, and does not forbid an external definition in another
translation unit. An inline definition provides an alternative to an external
definition, which a translator may use to implement any call to the function
in the same translation unit. It is unspecified whether a call to the function uses
the inline definition or the external definition.inline void some_inline_func(uint32_t num)
{
. . .
}extern inline void some_inline_func(uint32_t num)
{
. . .
}static inline void some_inline_func(uint32_t num)
{
. . .
}void some_inline_func(uint32_t num)
{
. . .
}как выполнить запрос и не выводить ничего в консоль?
Как замерять время выполнения функции?
как можно искусно замедлить выполнение
Имеется код вида
int64_t a = b/c
b и c какие-то произвольные числа
требуется записать 0 в переменную a, если произошел SIGFPE.
Проверять значения b и c не вариант, нужно как-то задавать значение для a в обработчике сигнала.
при использовании Valgrind выпадает ошибка:
Опытным путём пришёл к выводу что проблемма связана с ошибкой в самом make.
==6410== Valgrind: "/media/mid/Main_file_m2/Road/rank 0/libftTester/a.out"