内核中的UDP socket流程(2)——API “sys_socket”
时间:2010-12-23 来源:GFree_Wind
内核中的UDP socket流程(2)——API “sys_socket”
作者:[email protected] 原文:http://blog.chinaunix.net/u3/116859/showart.php?id=2445122前面已经列出了UDP常用的4个API,那么下面从第一个API “sys_socket”开始
1272 SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) |
1279~1282行:对于这些常量作出编译期间的检查。
1284~1286行:在linux2.6.27以前的版本,参数int type只能取真正的socket type的值,即下面的
enum sock_type { |
#define SOCK_CLOEXEC O_CLOEXEC |
1287行:获得真正的type值
1289~1290行:如果socket的NOBLOCK标志位不等于普通的文件描述符标志的NOBLOCK标志,且该socket设置了SOCK_NONBLOCK,那么就取消这个SOCK_NONBLOCK标志位,并设置上O_NONBLOCK标志位。
今天又晚了。。。正在看sock_create的代码,明天继续吧。