Публикации по теме '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 просмотров
schedule
01.03.2022
RFC/advice: Дизайн защищенного/незащищенного протокола rpc/event-stream
SSL кажется довольно раздутым для того, что я хочу сделать, и я страстно ненавижу OpenSSL (NSS может быть полезен). Мне нужно открыть TCP-канал между двумя узлами, который будет использоваться для RPC/зашифрованных RPC/потоков событий/зашифрованных...
222 просмотров
schedule
02.05.2022
Как получить HWND одного или нескольких скрытых окон?
Мне нужно получить HANDLE или HWND скрытого окна, чтобы закрыть его с помощью EndTask((HWND)hProc,TRUE,TRUE); . Я использовал все способы, перечисленные ниже, но ни один из них не работает. Когда я вручную установил дескриптор скрытого окна с...
2115 просмотров
schedule
14.05.2022
Инициализировать массив в 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 просмотров
schedule
03.06.2022
Мы должны использовать 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 просмотров
schedule
06.10.2022
Программно получить размер строки кеша?
Приветствуются все платформы, укажите платформу для своего ответа.
Аналогичный вопрос: Как программным способом получить размер страницы кэша ЦП в C ++?
84103 просмотров
schedule
12.04.2023
Какой самый короткий код для записи непосредственно в адрес памяти в 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 просмотров
schedule
26.10.2022
Простой способ узнать, реализован ли Posix API операционной системой.
При написании кода я думал об общей реализации для всех ОС POSIX, а не о отдельной реализации для каждой ОС. Один из POSIX API, который я использую, — это posix_fallocate(), и во время тестирования я обнаружил, что он не поддерживается MacOS.
Если...
40 просмотров
schedule
22.05.2023