Как мне узнать системный вызов для конкретной команды?

Я новичок в Ubuntu, и у меня есть вопрос по поводу команды strace ls. Когда я запускаю эту команду, она дает все системные вызовы. Что если мне нужно знать, что системные вызовы для конкретной команды, например, если я запускаю команду mkdir? Я хочу знать, какие системные вызовы для этой конкретной команды.

Это очень помогает мне в учебе. Большое спасибо.

0
задан 27 February 2014 в 10:36

2 ответа

Точно так же, как Вы делаете strace ls, необходимо сделать strace mkdir, который даст Вам список всех вызовов, выполненных mkdir как как образец ниже от моего ПК:

execve("/bin/mkdir", ["mkdir"], [/* 37 vars */]) = 0
brk(0)                                  = 0x83da000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7736000
........
.......

Hope это решит Вашу проблему, но если Вы хотите знать о каждом syscall, сделанном, тогда читает его страницы справочника или конкретно спрашивают о syscall.

0
ответ дан 27 February 2014 в 10:36

Вскоре:

strace command [arguments]

, Например:

strace mkdir test

Для большего количества информации, см. man strace.

0
ответ дан 27 February 2014 в 10:36

Другие вопросы по тегам:

Похожие вопросы: