Для чего используется параметр-z в этой команде компилятора gcc?

Команда: gcc -fno-stack-protector -z execstack -o ExitCode ExitCode.c Я знаю, что мне нужно включить-z execstack, чтобы мой код работал, и у меня в основном есть идея, для чего execstack и что он позволяет мне делать. Но я не знаю, что здесь дела ...

Формула цикла сдвига влево

Я нашел следующий код в примере программы: const unsigned int n = /* something */ unsigned int i = 1; for (unsigned int j = 1; j < n-1; ++j) { i <<= 1; } Существует ли прямая формула для вычисления i из n Без цикла? ...

В чем заключается реальное использование возвратного типа сигнальной функции

Сигнальная функция возвращает значение старого обработчика, но какова ситуация, когда старое значение обработчика может оказаться полезным, потому что в большинстве мест мы не проверяем возвращаемое значение сигнальной функции. ...

Читать двоичный код (.HGT) файл в C (перенос кода с C++ на C)

Я пытаюсь создать приложение, которое использует двоичные данные из ".HGT " форматированный файл. Я нашел soltuion в C++, но я не могу понять, как перевести это решение в C. каждое значение в файле имеет тип signed short int, и есть 1201x1201 значени ...

Получение капитала от getchar при нажатии Home или End

Я использую это в моем C-коде: system("stty -echo -icanon"); Это часть домашнего задания, но эта конкретная часть-то, над чем я работаю вне требований задания. Мы реализуем оболочку, и нам дали кучу кода для начала. Код не использует ncurses (ко ...

C запись в строку (задается конкретная функция)

Я в некотором роде в затруднении с поиском одной конкретной функции с возвращаемым типом int, который изменяет значения массива char (string), принимая ровно 5 параметров, в то время как функция не должна быть импортирована из любой другой библиотеки ...

Передавая указатель на функцию в под

Я пытаюсь переделать модуль Misaka в ctypes, но когда я пытаюсь использовать bufputs, я получаю ошибку (см. Конец 2-го примера кода). Когда я передаю указатель на функцию, я использую pointer(b). Это не работает, и byref(b) тоже не работает. Это сиг ...

Можно ли определить структуру, объекты которой всегда будут находиться в отдельных строках кэша

Я знаю, что вы можете выровнять переменные по строке кэша, например, с помощью атрибут ((align(64))) в ССАГПЗ. Однако я заинтересован в выравнивании (или вы можете назвать это заполнением) во время объявления структуры. Так, например, для следующей ...

бесплатный 2D массива в C

Я решал несколько простых упражнений с указателями, когда наткнулся на следующий пример: void deallocate2D(int** array, int nrows) { /* deallocate each row */ int i; for(i = 0; i < nrows; i++) { free(array[i]); } /* deallocat ...

Как мы можем передать структуру C в Python?

Я новичок как в C, так и в Python. В эти дни я учусь встраивать Python в C. Поскольку я вызываю функции Python из C, я хотел бы знать, как мы можем передать структуру C в Python? Заранее большое спасибо! ...

в чем разница между вызовом функции как fun() и fun?

Я наткнулся на кусок кода, который выглядит следующим образом qsort(array, 10, sizeof(int), sort); Здесь сортировка снова является функцией. Но у меня всегда было впечатление, что любая вызываемая функция должна иметь () после имени функции или я ...

Как оптимизировать эту простую функцию, которая переводит входные биты в слова?

Я написал функцию, которая считывает входной буфер байтов и создает выходной буфер слов, где каждое слово может быть либо 0x0081 для каждого бита входного буфера, либо 0x007F для каждого бита OFF. Задается длина входного буфера. У обоих массивов дост ...

Может GDBM базы данных, созданные в C быть открыт в Python?

У меня есть программа на Python, в которой я пытаюсь использовать этот словарь рифм для поиска рифм. Часть настройки библиотеки словарей выполняется программой на языке Си, создающей три файла GDB .db. Код, который делает это публично доступные зде ...

Бесшовная прокрутка tilemaps

Я работаю над rpg сверху вниз и хочу реализовать бесшовные карты прокрутки. То есть, когда игрок исследует мир, между картами нет загрузочного экрана и нет "дверей" в следующую область. У меня есть два способа разрушить мир. На верхнем уровне у мен ...

Получение указателя на нижнюю часть стека вызовов и разрешение символа по адресу (например, dladdr) под Windows?

Я хочу реализовать аналог утилиты backtrace под windows, чтобы добавить эту информацию в исключение, например. Мне нужно записать обратные адреса, а затем перевести их в имена символов. Я знаю о StackWalk64 и о проекте StackWalker, но, к сожалению, ...

Вставка сортировка ассемблерного кода (перевод с языка Си)

У меня нет глубоких знаний ассемблерного программирования. Я пытаюсь перевести следующий код с чистого C на язык ассемблера. Pure-C int i,j,temp; for ( i = 0 ; i < 10 ; i++ ) { temp = global_array[i]; for ( j = i-1 ; j >= 0 ; j ...

Задание в условии если пойдет не так

Я динамически выделяю память для структуры с помощью этой строки кода: if (DrinkMachine = (Drink_Machine*)malloc(sizeof(DrinkMachine) * size) == NULL) return(NULL); Я тоже пробовал: if (DrinkMachine = (Drink_Machine*)malloc(sizeof(DrinkMach ...

/usr / bin/ld: предупреждение: abc.so, необходим для xyz.so не найдено (попробуйте использовать -rpath или-rpath-link)"

Я создаю приложение C++, используя Netbeans 6.9 в качестве IDE. У меня есть библиотека C++, которая является оболочкой вокруг чистой библиотеки C. Я правильно добавил файл в проект (используя опцию Добавить файл библиотеки). Вот результат, полученны ...

Дамп ядра на типе указателя-приведение (int к double) в C

Я наткнулся на этот фрагмент кода: void incme(double *p) { *p += 1; } int i = 1; incme((double *)&i); /* WRONG */ Когда я пытаюсь выполнить его,я получаю дамп ядра. Что не так с этим кодом? Мы не можем ввести приведение указателя int ...

Как обнаружить ошибку полного диска и позволить программе возобновить работу после получения свободного места на диске

Я пишу приложение для запуска на LINUX, которое записывает на диск с помощью fprintf & fwrite. Я хотел бы иметь возможность ловить ошибки" disk full", предлагать пользователю сделать больше места, а затем возобновить работу, как будто ничего не п ...