Вопросы по теме 'system-calls'
Как sbrk/brk реализованы в Linux?
Я думал о том, как ядро Linux реализует системные вызовы, и мне было интересно, может ли кто-нибудь дать мне общее представление о том, как работают sbrk/brk?
Я просмотрел код ядра, но его так много, что я его не понимаю. Я надеялся на резюме от...
16810 просмотров
schedule
08.03.2023
Захват syscall stdout без записи в файл в C/C++
Я хочу прочитать стандартный вывод системного вызова в строку C/C++. Могу ли я сделать это без использования временного файла?
Перл
//without file io
$output = `echo hello`;
C++
//with file io
system ("echo hello > tmp");...
3200 просмотров
schedule
17.04.2022
Как узнать, какой тип системного вызова используется программой
Я работаю на машине x86_64. Мое ядро Linux также является 64-битным ядром. Поскольку существуют разные способы реализации системного вызова (int 80, syscall, sysenter), я хотел знать, какой тип системного вызова использует моя машина. Я новичок...
3617 просмотров
schedule
07.02.2024
Сомнения в механизме системных вызовов в Linux
Мы переходим от ring3 к ring0, используя int или новую инструкцию syscall / sysenter. Означает ли это, что таблицы страниц и другие вещи, которые необходимо изменить для ядра, автоматически выполняются инструкцией int или обработчик прерывания для...
491 просмотров
schedule
26.07.2023
Связь медленного системного вызова с сигналом
Я изучаю медленный системный вызов и сигналы. Для обычной системы медленный системный вызов (чтение с терминального устройства) может блокироваться навсегда. и ниже пример, возможно чтение до истечения времени ожидания через некоторое время времени....
617 просмотров
schedule
07.12.2023
Что означает int 21h в сборке?
Я новичок в изучении языка ассемблера, и мне интересно, что означает команда int 21h . Например:
mov ah,01h
int 21h
Которая должна прочитать ключ от пользователя.
97524 просмотров
schedule
24.04.2022
epoll_wait не работает из-за EINTR, как это исправить?
Мой epoll_wait не работает из-за EINTR. Моя трассировка gdb показывает это:
enter code here
221 in ../nptl/sysdeps/pthread/createthread.c
(gdb)
224 in ../nptl/sysdeps/pthread/createthread.c
(gdb)
[New Thread 0x40988490 (LWP 3589)]
227...
9558 просмотров
schedule
17.04.2023
Реализация функции execve (unistd.h)
Как посмотреть реализацию функции execve (под x86_64 Linux), она есть в библиотеке unistd? Я хочу этого, потому что хочу знать, как я могу вызвать внешнюю программу с помощью ассемблера, не вызывая execve. Я знаю, что есть системный вызов execve, но...
1975 просмотров
schedule
30.07.2023
Разница между nice и setpriority в unix
Я пытаюсь реализовать другой вариант «хорошей» команды unix в C. Я видел определения системного вызова nice() и вызова setpriority(). Вызов nice() только увеличивает/уменьшает приоритет процесса. Если я хочу установить приоритет процесса на...
8274 просмотров
schedule
15.10.2023
Как сделать системный вызов из другого системного вызова в пространстве ядра
Я новичок в разработке ядра Linux. Я реализовал системный вызов my_pid в ядре Linux 2.6. Я хочу вызвать системный вызов getpid из своего системного вызова. Как я могу это сделать?
Я хочу что-то вроде:
pid_t my_pid () {вернуть getpid ();...
2250 просмотров
schedule
17.11.2022
Отключить функции system() и exec() в C и Pascal
Есть ли способ отключить функции system() и exec() в C/C++ и Pascal, используя любой аргумент компилятора или изменив файл заголовка/модуля? (это винда)
Я пытался использовать -Dsystem=NONEXIST для gcc и g++, но #include <cstdio>...
1545 просмотров
schedule
06.10.2023
Генерация случайных чисел с помощью системного вызова
Я пытаюсь сгенерировать случайное целое число от 0 до 99 (включительно), но мне трудно найти, где оно сохраняет значение при использовании системного вызова 42.
Пока у меня есть:
li $a1, 100
li $v0, 42
syscall
Я не уверен, где хранится...
7005 просмотров
schedule
11.08.2022
Как извлечь символы ядра из uImage (arm)?
Я хочу извлечь символы ядра из образа u-boot
Конечная цель — отладка системных вызовов с помощью gdb .
Ядро скомпилировано с CONFIG_DEBUG_INFO=y , а gcc использует параметр -g (я проверил)
После make uImage у меня:
# file...
2496 просмотров
schedule
16.05.2024
Файловые дескрипторы Unix max
Недавно я написал программу для определения максимального количества файловых дескрипторов, открытых для каждого процесса .
Это было по существу
int fd = creat("somefile.dat");
int count = 1;
while(1)
{
int s = dup(fd);
if (s == -1)...
1437 просмотров
schedule
13.03.2024
Как получить char* с помощью ptrace
В настоящее время я разрабатываю инструмент, в котором я должен отслеживать программу, чтобы узнать ее системные вызовы. На данный момент я могу получить числовые параметры системных вызовов, но я не могу правильно адресовать строки.
Вот как я...
1484 просмотров
schedule
05.03.2023
Где определение функции POSIX stat в Linux?
В Windows stat и почти все другие функции C/POSIX, предоставляемые Windows, определены в msvcrt.dll, которая является библиотекой времени выполнения C.
Я знаю, что в Linux многие функции POSIX C являются системными вызовами. Я также знаю, что...
845 просмотров
schedule
30.08.2022
как работает sys_open?
Я написал простой драйвер устройства char (mydev) с операцией «открыть» файл.
В приложении пользовательского пространства я открываю этот узел драйвера. используя open("/dev/mydev", O_RDONLY); Системный вызов open() внутренне вызывает sys_open()....
4782 просмотров
schedule
16.09.2022
написание API glibc для системного вызова
Возможный дубликат: Нужна помощь с исходным кодом glibc
Я понимаю, как реализовать наши собственные системные вызовы в ядре Linux. Я знаю, что мы можем вызвать это с помощью syscall() или _asm() в программе на языке C.
Но я...
2868 просмотров
schedule
14.04.2022
работа библиотек
Я работал с ‹ iostream> и другими общими библиотеками C++. Помимо этого, я также работал с такими библиотеками, как ‹ pthread.h>.
Теперь я прочитал, что системные вызовы, которые зависят от операционной системы , обеспечивают интерфейс между...
46 просмотров
schedule
18.12.2022
Как перебрать строку в сборке mips
Итак, я сейчас работаю над проектом, в котором мы должны взять строку и преобразовать ее во все буквы верхнего регистра, а затем в буквы нижнего регистра, если байт toUpper или toLower не равен 0. Прямо сейчас я все еще работаю над прописными буквами....
14855 просмотров
schedule
15.10.2023