如果我在套接字描述符上使用 fdopen(),如何关闭套接字()
How to close a socket() if I used fdopen() on the socket descriptor
如果我创建一个套接字
sockfd = socket(...);
然后我通过调用将其关联到 FILE 流
FILE* f=fdopen(sockfd,"r+");
我应该同时打电话给close(sockfd);
和fclose(f);
还是只打电话close(sockfd);
?如果我调用或不调用fclose(f)
,文件结构会发生什么?
而且(最重要的是(,如果我应该称呼他们两个,他们必须按什么顺序称呼?第一close()
还是fclose()
?
>fdopen()
将文件描述符包装到缓冲的 io FILE
结构中,就像您使用 fopen()
打开它一样。
你应该只调用fclose()
,这将关闭os文件描述符并释放所有相关的结构和缓冲区!
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 套接字读取后,我在缓冲区中看到意外输入
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- (Winsock) UDP 接收工作正常,但同一套接字的发送失败
- MSG_WAITALL的套接字发送得到了 22 EINVAL
- C++套接字客户端到 Python 服务器未创建连接
- 在不知道套接字的情况下关闭网络连接
- C++套接字对不读/写父/子
- 非更新套接字消息
- SIGSEGV on Boost UDP 套接字关闭 - tcache_get at malloc.c.
- 将"uint8_t"(从套接字读取)隐式转换为"char"安全吗
- 当对套接字 send() 的同步调用由于连接另一端丢失而被阻止时,如何恢复?
- 如果我在套接字描述符上使用 fdopen(),如何关闭套接字()
- 如何正确关闭使用 fdopen 打开的套接字