函数原型
1 | #include <unistd.h> |
形参
fd参数是待关闭的socket。不过,close系统调用并非总是立即关闭一个连接而是先将fd的引用计数减一。只有当fd的引用数为0时,才真正关闭。多进程程序中,一次fork的系统调用默认将使父进程中打开的socket的引用计数加1.所以我们必须在父进程和子进程中都对该socket执行close。
其他关闭函数
由于close系统调用并不是马上就关闭连接而是减少其引用次数。如果想马上关闭连接,可以使用shutdown系统调用。
函数原型
1 | #include <sys/socket.h> |
形参
sockfd为待关闭的socket。howto参数决定了shutdown的行为,它可取的值如下:
返回值
成功返回0,失败则返回-1并设置errno。