Свързани въпроси 'system-calls'
възможна злоупотреба с perf_event_open syscall
Експериментирам с PERF_EVENTS, интерфейс за събитие за изпълнение, предоставен от ядрото на Linux. Успешно получих параметър за изпълнение (цикли на процесора,...) чрез perf_event_open syscall.
long
perf_event_open(struct perf_event_attr...
216 изгледи
schedule
17.09.2022
Защо някои системни извиквания на 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 изгледи
schedule
10.12.2023
Използване на 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 изгледи
schedule
26.02.2024
Какво количество данни гарантира 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 изгледи
schedule
24.05.2024
Реализация на системни повиквания
Ако потребителско приложение направи системно повикване, се задейства софтуерно прекъсване/изключение. Как мога да видя изходния код за генериране на софтуерно прекъсване?
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