Schreiben einer glibc-API für einen Systemaufruf [duplizieren]

Mögliche Duplikate:
Brauchen Sie Hilfe mit Glibc Source

Ich verstehe, wie wir unsere eigenen Systemaufrufe im Linux-Kernel implementieren. Ich weiß, wir können das mit nennensyscall() oder mit_asm() in einem c-Programm.

Aber ich möchte verstehen, wie man glibc-API für diesen neuen Systemaufruf schreibt.

Wie zumopen() undread() Die glibc-Funktion ruft die Zuordnung zum Systemaufruf im Kernel auf.

char      message[ ] = "Hello!\n";

int main( void )
{
        write( 1, message, 7 );
        exit( 0 );
}

Wenn ich das obige Programm in Assembly konvertiere, gibt es

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, in "call write" denke ich schreibe ist hier glibc call? was passiert danach Wie ordnet es den glibc-Aufruf dem Systemaufruf zu?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage