关闭/清理 "mixed"文件描述符/套接字

标签 c sockets io file-descriptor

当我使用 accept() 创建套接字并使用 fdopen() 从中创建一个 FILE 时,我需要做什么来清理所有内容?我需要在文件上执行 fclose(),在套接字上执行 shutdown() 和 close(),还是只需要执行 shutdown() 和/或 close() 或 fclose()?如果我不执行 fclose(),我是否必须手动 free() FILE 指针?

最佳答案

来自 man fdopen:

The file descriptor is not dup’ed, and will be closed when the stream created by fdopen() is closed

所以我只使用 fclose(),它也会关闭底层文件描述符。我也不知道是否需要 shutdown()。

关于关闭/清理 "mixed"文件描述符/套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/108043/

相关文章:

c - 文件处理代码编译但不运行

c - 连续的 scanfs,第二个不要求用户输入第二个

C++ 如何通过套接字发送对象?

c++ - C++中的HTTP代理示例

Java:创建文件或目录(如果不存在)

go - 使用 golang 的 os/exec,如何将标准输出从一个进程复制到另一个进程的标准输入?

java - Java 的 BufferedReader.readLine() 是否将整个文件放入内存?

c - C 参数值中的单链表

c - 如何在服务器端使用 openssl 完全禁用重新协商(重新握手)?

sockets - 可以在其中插入服务器证书构建的应用程序吗?