通过内嵌汇编来调用系统调用,封装实现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;
}