Вопросы с тегом 'system-calls'

Системный вызов используется программами для запроса сервисов из ядра операционной системы.
9

Что делает системный вызов brk()?

Согласно руководству для программистов Linux: brk() и sbrk() меняют место остановки программы, что определяет конец сегмента данных процесса. Что означает сегмент данных здесь? Это просто сегмент данных или данные, BSS и куча вместе взятые? Сог...
08 авг. '11 в 20:57
3

Как реализуется malloc() внутри?

Может ли кто-нибудь объяснить, как malloc() работает внутри? Я иногда делал strace program, и я вижу много системных вызовов sbrk, делая man sbrk говорит о том, что он используется в malloc(), но не намного больше.
13 авг. '10 в 17:35
2

Разница между реальным идентификатором пользователя, эффективным идентификатором пользователя и сохраненным идентификатором пользователя

Я уже знаю реальный идентификатор пользователя. Это уникальный номер для пользователя в системе. В моей системе My uid $ echo $UID 1014 $ Что означают два других идентификатора. И в чем заключается использование эффективного идент...
08 сент. '15 в 10:43
5

Как написать обработчик сигнала, чтобы поймать SIGSEGV?

Я хочу написать обработчик сигнала, чтобы поймать SIGSEGV. Я защищаю блок памяти для чтения или записи с помощью char *buffer; char *p; char a; int pagesize = 4096; mprotect(buffer,pagesize,PROT_NONE) Это защищает байты с размером страниц, начина...
18 апр. '10 в 18:44
9

Как контролировать, на каком ядре работает процесс?

Я могу понять, как можно написать программу, которая использует несколько процессов или потоков: fork() новый процесс и использование IPC, или создать несколько потоков и использовать те виды механизмов связи. Я также понимаю контекстное переключени...
19 мар. '09 в 20:37
4

Что лучше "int 0x80" или "syscall"?

Я изучил ядро Linux и обнаружил, что для архитектуры x86_64 прерывание int 0x80 не работает для системных вызовов. (Примечание редактора: не совсем так, в некоторых случаях это работает, но никогда не рекомендуется. Что произойдет, если вы используе...
09 окт. '12 в 18:56
4

dup2/dup - зачем мне дублировать файловый дескриптор?

Я пытаюсь понять использование dup2 и dup. На странице man: DESCRIPTION dup and dup2 create a copy of the file descriptor oldfd. After successful return of dup or dup2, the old and new descriptors may be used interchangeably. They share locks, fi...
24 июл. '12 в 16:24
2

Магические номера системного вызова reboot() Linux

Интерфейс программирования Linux имеет упражнение в главе 3, которое выглядит следующим образом: При использовании Linux-специфичной перезагрузки() системный вызов для перезагрузки системы, Второй аргумент magic2 должен быть как один из множества ...
26 янв. '11 в 19:02
5

Вызовите операционную систему для открытия URL-адреса?

Что я могу использовать для вызова ОС для открытия URL-адреса в любом браузере, который пользователь имеет по умолчанию? Не беспокоиться о совместимости между ОС; если он работает в Linux, для меня это достаточно!
18 нояб. '10 в 16:16
3

Сделать родительский wait для завершения всех дочерних процессов

Я надеюсь, что кто-то может пролить свет на то, как заставить родителя ждать завершения всех дочерних процессов, прежде чем продолжить работу над вилкой. У меня есть код очистки, который я хочу запустить, но дочерние процессы должны быть возвращены д...
19 окт. '13 в 2:36
3

Как сайты, такие как codepad.org и ideone.com, изолируют вашу программу?

Мне нужно скомпилировать и запустить созданные пользователем сценарии на моем сайте, похожие на codepad и ideone. Как я могу изолировать эти программы, чтобы злоумышленники не удалили мой сервер? В частности, я хочу заблокировать их в пустом каталог...
12 сент. '10 в 17:49
6

Как работают системные вызовы?

Я понимаю, что пользователь может владеть процессом, и каждый процесс имеет адресное пространство (которое содержит действительные ячейки памяти, этот процесс может ссылаться). Я знаю, что процесс может вызвать системный вызов и передать ему параметр...
05 июн. '11 в 7:51
2

Верно ли, что fork() вызывает clone() внутри?

Я читаю здесь, что системный вызов clone() используется для создания потока в Linux. Теперь синтаксис clone() таков, что для его передачи требуется начальный адрес программы/функции. Но здесь, на странице this, написано, что fork() вызывает clone...
19 сент. '13 в 20:26
5

Как получить идентификатор потока из произвольного pthread_t?

У меня есть pthread_t, и я бы хотел изменить его близость к процессору. Проблема в том, что я использую glibc 2.3.2, у которого нет pthread_setaffinity_np(). Это нормально, потому что pthread_setaffinity_np() сам является оберткой sched_setaffinity()...
17 февр. '09 в 19:57
1

wait3 (waitpid alias) возвращает -1 с errno, установленным в ECHILD, когда он не должен

Контекст - это проблема Redis. У нас есть вызов wait3(), который ожидает, что ретранслятор AOF создаст новую версию AOF на диске. Когда ребенок выполнен, родитель уведомляется через wait3(), чтобы заменить старый AOF на новый. Однако в контексте вы...
30 нояб. '15 в 8:46