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

Вопросы, касающиеся деталей того, как программа использует системные вызовы для взаимодействия с API ядра, какие вызовы доступны, как они работают и т. Д.


2
В чем разница между fork () и vfork ()?
Я хотел бы подробно понять разницу между fork () и vfork (). Я не смог полностью переварить справочную страницу. Я также хотел бы пояснить комментарий одного из моих коллег: « В текущем Linux нет vfork (), даже если вы его вызываете, он будет внутренне вызывать fork () ».

2
Эквивалент «truss -T» и «truss -U» в Linux?
Есть ли эквивалент того, что делает -Tи -Uвариант trussутилиты Solaris в Linux. Они должны указывать системный вызов ( -T) или библиотечную функцию ( -U), которая при вызове отслеживаемым приложением приведет к его остановке. Или, в противном случае, я бы хотел, чтобы любой процесс, запущенный отслеживаемым приложением, был остановлен (как если …

4
Почему дочерний элемент vfork или fork должен вызывать _exit () вместо exit ()?
Со страницы руководства vfork(): vfork () отличается от fork () тем, что родительский элемент приостанавливается до тех пор, пока дочерний элемент не вызовет execve (2) или _exit (2). Дочерний узел совместно использует всю память со своим родителем, включая стек, до тех пор, пока дочерний объект не выпустит execve (). Дочерний …
12 c  system-calls  fork  exit 

2
Почему нет системных вызовов для вставки файлов?
Насколько я понимаю, для манипулирования файлами в Linux существует только системный вызов sys_write, который перезаписывает содержимое файла (или расширяет его, если в конце). Почему в Linux нет системных вызовов для вставки или удаления контента в файлах? Поскольку все современные файловые системы не требуют сохранения файла в непрерывном блоке памяти, должна …

2
Добавление нового системного вызова в Linux 3.2.x с загружаемым модулем ядра [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он подходил для Unix и Linux Stack Exchange. Закрыто 7 лет назад . Я хочу добавить новый системный вызов в ядро ​​Linux 3.2.x, но в качестве загружаемого модуля ядра …


3
Какую единицу времени использует strace при отображении времени, проведенного в системных вызовах?
При использовании команды straceс флагом -Tя хотел бы знать, какая единица времени используется для отображения времени, проведенного в системных вызовах? Я предполагаю, что это должно быть в считанные секунды, но я не совсем уверен, и это, кажется, опущено в руководстве.

1
Какая польза от «магических аргументов» в системном вызове перезагрузки Linux?
Когда я читал исходный код Linux и, в частности, системные вызовы кода, я столкнулся с sys_rebootреализацией: http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } В середине есть этот конкретный кусок кода: 209 210 /* For …

1
Почему rmdir и unlink два отдельных системных вызова?
Вот то, что заставило меня задуматься некоторое время: [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, …

4
Когда сами вызывать fork () и exec ()?
Я изучаю команды fork () и exec (). Кажется, что fork () и exec () обычно вызываются вместе. (fork () создает новый дочерний процесс, а exec () заменяет текущий образ процесса новым.) Однако в каких случаях вы можете вызывать каждую функцию отдельно? Есть ли такие сценарии?

3
Системные вызовы поддерживаются в работающем ядре
Есть ли способ узнать количество или список системных вызовов, поддерживаемых в настоящее время работающим ядром Linux? Поэтому я хочу найти способ «прочитать» таблицу системных вызовов работающего ядра.

2
Какой файл в ядре определяет fork (), vfork ()… для использования системного вызова sys_clone ()
Когда для отслеживания системных вызовов используется ltrace, я вижу, что fork () использует sys_clone (), а не sys_fork (). Но я не смог найти источник Linux, где он определен. Моя программа #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); } И вывод трассировки SYS_brk(NULL) …

3
Заставить процесс прочитать другой файл с тем же именем
У меня есть приложение, которое читает файл. Давайте назовем это имя процесса и файл ~ / .configuration . Когда имя процесса запускается, оно всегда читает ~ / .configuration и не может быть настроено иначе. Существуют также другие приложения, которые используют «~ / .configuration» до и после, но не во время …

1
Для чего я должен использовать `O_PATH` и как?
Я использую дистрибутив на основе Linux 4.x, и недавно я заметил, что open()системный вызов ядра поддерживает O_PATHфлаг открытия. Хотя на этой manстранице есть список системных вызовов, с которыми она может теоретически использоваться, я не совсем понимаю, в чем идея. Я open(O_PATH)только каталоги, а не файлы? И если я это сделаю, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.