Публикации по теме 'systems-programming'


API РДЭ
Короткая и милая версия :) IDR API отвечает за выделение целочисленных идентификационных номеров, используемых с именами устройств, таймерами POSIX и т. д. void idr_preload(gfp_t gfp_mask); int idr_alloc(struct idr *idp, void *ptr, int start , int end, gfp_t gfp_mask); void idr_preload_end(void); Функция idr_preload() отвечает за выделение памяти, необходимой для удовлетворения следующего запроса на выделение. Вызов idr_alloc() выделяет целочисленный идентификатор. Он..

Вопросы по теме 'systems-programming'

Отправка структур через сокеты домена Unix
Я использую сокеты домена Unix для межпроцессного взаимодействия в Linux. После подключения клиент отправляет на сервер структуру с помощью send . Эта структура содержит некоторую информацию о клиенте, включая строку идентификатора в конце. Сервер...
894 просмотров
schedule 07.11.2021

Используя sigaction (), c
Я немного читал о sigaction() (источники взяты из моих заметок по курсу), и я не уверен, что понимаю этот текст: Маска сигнала рассчитывается и устанавливается только на время работы обработчика сигнала. По умолчанию сигнал «sig» также...
11596 просмотров
schedule 13.09.2021

Микрооптимизации: использование intptr_t для типов flag / bool
Насколько я понимаю, определение intptr_t зависит от архитектуры - он гарантированно обладает способностью представлять указатель, который может получить доступ ко всему единообразному адресному пространству процесса. Nginx (популярный веб-сервер с...
306 просмотров

RFC/advice: Дизайн защищенного/незащищенного протокола rpc/event-stream
SSL кажется довольно раздутым для того, что я хочу сделать, и я страстно ненавижу OpenSSL (NSS может быть полезен). Мне нужно открыть TCP-канал между двумя узлами, который будет использоваться для RPC/зашифрованных RPC/потоков событий/зашифрованных...
222 просмотров

Как получить HWND одного или нескольких скрытых окон?
Мне нужно получить HANDLE или HWND скрытого окна, чтобы закрыть его с помощью EndTask((HWND)hProc,TRUE,TRUE); . Я использовал все способы, перечисленные ниже, но ни один из них не работает. Когда я вручную установил дескриптор скрытого окна с...
2115 просмотров

Инициализировать массив в c в формате `int a[3]={0,};`
Я видел источник, где массив инициализируется в int arr[3] ={0,}; Что это значит? Обычно я использую этот формат int arr[3]={0}; могу ли я узнать, в чем разница?
107 просмотров
schedule 17.05.2022

mmap на / proc / pid / mem
Кому-нибудь удалось создать файл / proc / pid / mem с помощью ядра Linux 2.6? Я получаю ошибку ENODEV (нет такого устройства). Мой звонок выглядит так: char * map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, mem_fd, offset); И я убедился,...
5104 просмотров
schedule 27.05.2022

Где идентификаторы системных вызовов определены для архитектуры x86 в ядре Linux 5.0.1?
Я слежу за видеоуроком по системному программированию Linux. Когда я дошел до раздела «как добавить свой собственный системный вызов Linux», инструктор показывает, что все идентификаторы системных вызовов (макросы, начинающиеся с __NR) присутствуют...
572 просмотров

Мы должны использовать C по соображениям производительности
В наш век многих языков кажется, что существует отличный язык практически для любой задачи, и я обнаружил, что профессионально борюсь с мантрой « только C - это быстро », где быстрое действительно предназначено для означает "достаточно быстро". Я...
8830 просмотров
schedule 01.08.2022

Неверный аргумент при использовании fcntl в C
Я пытался понять причину и не могу найти действительную причину ошибки Invalid Argument при использовании perror . Кто-нибудь может подсказать причину этой ошибки? #include <stdio.h> #include <stdlib.h> #include <unistd.h>...
1131 просмотров
schedule 07.08.2022

pthread_cond_wait блокирует (спит) бесконечно, пока pthread_cond_signal не будет вызван другим потоком в C?
Если поток: A заблокирован в pthread_cond_wait из-за условия, будет ли наш поток A бездействовать неопределенное время в ожидании вызова pthread_cond_signal в другом потоке? Или он будет разбужен, даже когда условие каким-то образом станет истинным...
773 просмотров
schedule 01.09.2022

Системное программирование qemu: неизвестные коды клавиш `(безымянные)'
Я пытаюсь запустить qemu с кодом, предоставленным моим учителем, чтобы мы могли работать над нашим заданием. Это выполняется в Ubuntu 18.04. LIBPATH=/usr/lib/gcc/arm-none-eabi/6.3.1/ arm-none-eabi-as -mcpu=arm926ej-s -g ts.s -o ts.o...
143 просмотров

Программно получить размер строки кеша?
Приветствуются все платформы, укажите платформу для своего ответа. Аналогичный вопрос: Как программным способом получить размер страницы кэша ЦП в C ++?
84103 просмотров

Какой самый короткий код для записи непосредственно в адрес памяти в C/C++?
Я пишу код системного уровня для встроенной системы без защиты памяти (на ARM Cortex-M1, компилируемый с помощью gcc 4.3), и мне нужно читать/записывать непосредственно в регистр с отображением памяти. Пока мой код выглядит так: #define UART0...
22543 просмотров
schedule 23.01.2023

Чтение файла /proc/pid/mem дочернего процесса из родительского
В приведенной ниже программе я пытаюсь добиться следующего: Процесс A присваивает значение переменной стека a . Процесс A (родительский) создает процесс B (дочерний) с PID child_pid . Процесс B вызывает функцию func1 , передавая...
2910 просмотров
schedule 20.06.2023

Невозможно войти в исходный код системного вызова
Я скомпилировал свой исходный код libc для freebsd с параметром -g, так что теперь я могу вмешаться в функции libc. Но у меня проблемы с вводом кода системных вызовов. Я скомпилировал исходный код ядра freebsd с параметром -g. При установке точки...
4449 просмотров
schedule 24.01.2023

(ORIG_EAX*4) в вызовах ptrace
Я просматривал статью здесь и пробовал фрагмент кода, скопированный ниже: - #include <sys/ptrace.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> #include <linux/user.h> /* For constants...
4345 просмотров
schedule 07.05.2023

Обнаружение события копирования в окнах
может ли кто-нибудь дать мне фрагмент кода или API о том, как я могу отслеживать любое событие копирования в ОС Windows с использованием классической версии vb (vb 6.0). Я хочу перехватить событие копирования, скажем, пользователь копирует файл на...
2018 просмотров
schedule 18.04.2023

Литералы и непосредственные операнды
На курсе системного программного обеспечения, который я веду в этом семестре, нас учат ассемблерам и другому системному программному обеспечению. Читая курс, я наткнулся на тему LITERALS . Было проведено сравнение между литералами и...
12381 просмотров

Простой способ узнать, реализован ли Posix API операционной системой.
При написании кода я думал об общей реализации для всех ОС POSIX, а не о отдельной реализации для каждой ОС. Один из POSIX API, который я использую, — это posix_fallocate(), и во время тестирования я обнаружил, что он не поддерживается MacOS. Если...
40 просмотров
schedule 22.05.2023