Свързани въпроси 'system-calls'

възможна злоупотреба с perf_event_open syscall
Експериментирам с PERF_EVENTS, интерфейс за събитие за изпълнение, предоставен от ядрото на Linux. Успешно получих параметър за изпълнение (цикли на процесора,...) чрез perf_event_open syscall. long perf_event_open(struct perf_event_attr...
216 изгледи

Защо някои системни извиквания на Linux нямат обвивка, но са документирани така, сякаш имат?
Нека разгледаме системното извикване gettid като пример: http://man7.org/linux/man-pages/man2/gettid.2.html Знам, че gettid не е имплементиран в libc и трябва да направя директно системно извикване, за да го използвам ( syscall(SYS_gettid) )....
255 изгледи
schedule 18.09.2022

Системното извикване на Linux read() отнема повече време от моите очаквания (програмиране на сериен порт)
Опитвам се да прочета данни, изпратени от tty/USB0, и да ги отпечатам с байтов формат. Въпрос: Очаквам да отпечатам данните, след като байтовете за четене достигнат 40. Времето обаче отнема много повече време, отколкото очаквам. Системното...
341 изгледи
schedule 02.10.2022

Как да върна структура в xv6 системни извиквания?
В момента тествам xv6 и внедрих нов системен разговор. Доколкото виждам, всички системни извиквания в xv6 връщат int. Необходимо ли е това и защо? Защото бих искал да върна C структура. Това възможно ли е? Какво трябва да направя, за да...
366 изгледи
schedule 28.09.2022

Флаговете маскират четене и писане на posix
Проверката на режима на достъп до файла е малко по-сложна, тъй като константите O_RDONLY (0), O_WRONLY (1) и O_RDWR (2) не съответстват на единични битове в флаговете за състояние на отворен файл. Следователно, за да направим тази проверка, маскираме...
2793 изгледи
schedule 11.10.2022

системно извикване за картографиране на памет към файлов дескриптор (обратен mmap)?
Искам да мога да картографирам памет към файлов дескриптор, за да мога да използвам някои съществуващи функции, които се нуждаят от файлов дескриптор. Ето какво по същество търся: void do_operation1(int fd); char data[DATA_MAX] = { /* embedded...
2809 изгледи
schedule 02.11.2022

Clone() системно извикване в linux
Какво се случва, когато извикам системно повикване за клониране, като предам 0 като stack_start? Според страниците с ръководство за клониране трябва да върне -EINVAL , но когато го направя, показва грешка SIGSEGV (11) ....
1266 изгледи
schedule 16.11.2022

Защо всички процеси се убиват, когато терминална сесия приключи?
Неотдавна се чудех на въпроса: защо всички процеси се убиват, когато затворите терминал на Linux, а не се предават на процеса "init" (с pid 1)? Тъй като всички дъщерни процеси се приемат от процеса "init" след прекратяване на родителския. Моля,...
257 изгледи
schedule 22.12.2023

APUE: Създаване на файл с дупка в него: Фигура 3.2 стр. 65
В примера от "Разширено програмиране в Unix среда" следната примерна програма създава файл, след което използва lseek, за да премести указателя на файла към следващ адрес, като по този начин поставя "дупка" във файла. Авторът казва, че пространството...
389 изгледи
schedule 11.01.2024

Open() системен файлов десриптор
Трябва да коригирам върнатата стойност на open() syscall на posix OS. Разбрах от man-Pages , че трябва да върне дескриптора на файла и в случай на грешка системното извикване ще върне -1 и ще зададе errno стойност. Проблемът е, че не знам...
415 изгледи
schedule 09.01.2024

използване на системно повикване във файла на ядрото на Linux
Внедрявам персонализиран планировчик на процеси в Linux. И искам да използвам системно повикване, за да запиша програмата си, за да мога лесно да отстранявам грешки. Файлът, който пиша е изходен код: linux-x.x.x/kernel/sched_new_scheduler.c...
195 изгледи

Използване на Tcp Sockets на реални устройства с Android
Мога ли да използвам Tcp Sockets за свързване на две устройства с Android (не емулатори), даващи правилния IP адрес, взет от WIFI мрежа? Трябва ли да направя пренасочване на порт през определен порт? Възможно ли е програмно отваряне на порт чрез...
5605 изгледи
schedule 29.01.2024

Възможно ли е системно обаждане от Simulink?
Възможно ли е да се извърши системно повикване от Simulink ? Не го намерих в документацията, но може би има заобиколно решение. Или може да бъде толкова лесно, колкото извикване на функция.
631 изгледи
schedule 17.02.2024

Защо програмата не влиза в оператора if, когато трябва
Опитвам се да внедря команда "ls", която изброява файлове и директории. Зададох входящия масив от аргументи на следното: argv[0] = "./a.out" argv[1] = "-l" argv[2] = "test.c" Ето моят код (да приемем, че функцията main предава argc и...
147 изгледи
schedule 22.02.2024

Всеки ред в програма (с изключение на декларациите на променливи) ще използва ли в крайна сметка поне едно системно извикване?
Мислех си за системните извиквания и кода, който пишем! Да кажем, че имам програма като по-долу #include<stdio.h> int main() { int a=0,b=2,c; c=a+b; printf("The value of c is %d", c); return 0; } Да вземем случая на c =...
194 изгледи

Какво количество данни гарантира select (2), че може да бъде записано във файл без блокиране
select (2) (наред с други неща) ми казва дали мога да пиша в fd на файл без блокиране. Въпреки това, гарантира ли ми, че мога да запиша цели 4096 байта без блокиране? Забележка Интересувам се от нормални файлове на диск. Не гнезда или други...
161 изгледи
schedule 30.03.2024

Как да запиша int във файл с помощта на системно повикване write и да ги прочета точно както са написани?
Как мога да запиша int, float или други типове във файл, използвайки системното извикване за запис на UNIX? Искам да го направя, без да използвам каквато и да е функция на lib като fprintf или fwrite . Искам да използвам файлов дескриптор, а не...
39460 изгледи
schedule 29.03.2024

Как сайтове като codepad.org и ideone.com правят вашата програма в пясъчник?
Трябва да компилирам и стартирам изпратени от потребители скриптове на моя сайт, подобно на това, което codepad и ideone правя. Как мога да поставя тези програми в пясъчна среда, така че злонамерените потребители да не свалят моя сървър?...
5777 изгледи

Реализация на системни повиквания
Ако потребителско приложение направи системно повикване, се задейства софтуерно прекъсване/изключение. Как мога да видя изходния код за генериране на софтуерно прекъсване?
3482 изгледи
schedule 19.05.2024

Как да внедря мое собствено системно извикване без прекомпилиране на Linux ядрото?
Искам да внедря собствено системно повикване. (Вижте връзката по-долу) http://www.tldp.org/HOWTO/html_single/Implement-Sys-Call-Linux-2.6-i386/ Но добавянето на ново системно извикване изисква компилация на ядрото. Как да внедря мое...
2498 изгледи
schedule 07.06.2024