一、Linux 4.9内核bind系统调用代码注释
int __sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen)
{
struct socket *sock; // 定义socket对象的指针
struct sockaddr_storage address; // 用于存储从用户空间复制过来的地址
int err, fput_needed; // 错误码和文件指针释放标志
// 通过文件描述符获取socket对象,并检查是否需要释放文件指针
sock = sockfd_lookup_light(fd, &err, &fput_needed);
if (sock) { // 如果获取socket对象成功
// 将用户空间的socket地址复制到内核空间
err = move_addr_to_kernel(umyaddr, addrlen, &address);
if