C内嵌汇编 实现write函数

通过内嵌汇编来调用系统调用,封装实现write。write系统调用号为4.

$ grep -i write /usr/include/asm/unistd_32.h #define __NR_write 4

/*test_write.c*/
#include<stdio.h>

int my_write(int fd, const void *buf, size_t count)
{
        __asm__ __volatile__(
                        "movl $4, %%eax;"
                        "int  $0x80"
                        :
                        :"b"(fd),"c"(buf),"d"(count)
                        );

        return 0;
}

int main()
{
        my_write(1,"abc\n",4);
        return 0;
}