написание glibc API для системного вызова [дубликат]
Possible Duplicate:
Need help with glibc source
Я понимаю, как реализовать наши собственные системные вызовы в ядре Linux. Я знаю, что мы можем назвать это сsyscall()
или с_asm()
в программе c.
But I want to understand how to write glibc api for this new system call?.
How the open()
and read()
glibc function calls mapping into system call in kernel?.
char message[ ] = "Hello!\n";
int main( void )
{
write( 1, message, 7 );
exit( 0 );
}
Когда я конвертирую вышеупомянутую программу в сборку, это дает
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
movl $7, 8(%esp)
movl $message, 4(%esp)
movl $1, (%esp)
call write
movl $0, (%esp)
call exit
.size main, .-main
.ident "GCC: (Debian 4.3.2-1.1) 4.3.2"
.section .note.GNU-stack,"",@progbits
~
3, В «вызове написать» Я думаю, что написать это вызов glibc здесь? что происходит после этого? как он отображает вызов glibc на системный вызов?