【发布时间】:2015-08-21 07:41:39
【问题描述】:
我正在对 SSL 套接字进行编程,并且很多时候我看到了一些名称中带有 FD 或 SD 的东西(变量名、函数...)。例如,OpenSSL 提供的功能:
int fd = SSL_get_fd(...);
在许多教程(here、here 和 here)中,都使用了这个:
int sd = socket(...);
谁能解释一下,FD 和 SD 代表什么?
谢谢
【问题讨论】:
我正在对 SSL 套接字进行编程,并且很多时候我看到了一些名称中带有 FD 或 SD 的东西(变量名、函数...)。例如,OpenSSL 提供的功能:
int fd = SSL_get_fd(...);
在许多教程(here、here 和 here)中,都使用了这个:
int sd = socket(...);
谁能解释一下,FD 和 SD 代表什么?
谢谢
【问题讨论】:
“fd”一般是File Descriptor的缩写。在 Linux、OSX 和 BSD 变体等 POSIX 系统上,文件描述符不仅用于文件,还用于套接字、设备通信和其他事物
【讨论】:
SSL_get_fd() 返回文件描述符
在 Unix 和相关计算机操作系统中,文件描述符(FD,不太常见的 fildes)是用于访问文件或其他输入/输出资源(例如管道或网络连接)的抽象指示符。文件描述符是 POSIX 应用程序编程接口的一部分。文件描述符是一个非负整数,在 C 编程语言中表示为 int 类型。
wfd、rfd 将代表 write-FD 和 read-FD。 sd 不是标准绰号,但它可能代表“套接字文件描述符”,即。对应于套接字的 FD。来自同一个SSL_get_fd 页面:
fd 通常是网络连接的套接字文件描述符
【讨论】: