glibc中关于普通文件读写的函数有open,close,read,write,lseek,lseek64。它们分别封装了open,close,read,write,lseek,_llseek系统调用。
lseek用于在32位长度的文件中跳转,_llseek用于在64位长度的文件中跳转。
open函数的封装在前文中已经介绍了。
close函数定义在sysdeps/unix/sysv/linux/close.c文件中。
int
__close (int fd)
{
return SYSCALL_CANCEL (close, fd);
}
libc_hidden_def (__close)
strong_alias (__close, __libc_close)
weak_alias (__close, close)
__close 函数调用了close系统调用。
read函数定义在sysdeps/unix/sysv/linux/read.c文件中
ssize_t
__libc_read (int fd, void *buf, size_t nbytes)
{
return SYSCALL_CANCEL (