linux写系统调用和libc

时间:2012-12-06 15:26:08

标签: linux system-calls libc

在linux中,'write'是一个小型的系统调用wapper函数。

在GDB中。如果我搜索符号'write'(info addr write) GDB告诉我一个libc范围内的地址。 但是,当我检查libc的导出功能列表时 没有'写'符号。

这里发生了什么?

1 个答案:

答案 0 :(得分:3)

  

当我检查libc的导出功能列表时,没有'写'符号

让我们来看看:

[max@xxx:~/tmp] $ nm --dynamic --defined-only /lib64/libc-2.15.so | grep write
0000003c7a4f1990 T eventfd_write
0000003c7a46c540 W fwrite
0000003c7a475570 T fwrite_unlocked
0000003c7a476d50 T _IO_do_write
0000003c7a475fa0 T _IO_file_write
0000003c7a46c540 T _IO_fwrite
0000003c7a471d10 T _IO_wdo_write
0000003c7a4e3060 T __libc_pwrite
0000003c7a4f2310 T process_vm_writev
0000003c7a4e3060 W pwrite
0000003c7a4e3060 W pwrite64
0000003c7a4e3060 W __pwrite64
0000003c7a4ea520 T pwritev
0000003c7a4ea520 T pwritev64
0000003c7a4e4940 W write
0000003c7a4e4940 W __write
0000003c7a4ea3d0 W writev