如果我创建一个套接字
sockfd = socket(...);
然后我通过调用将其关联到 FILE 流
FILE* f=fdopen(sockfd,"r+");
我应该同时打电话给close(sockfd);
和fclose(f);
还是只打电话close(sockfd);
?如果我调用或不调用fclose(f)
,文件结构会发生什么?
而且(最重要的是(,如果我应该称呼他们两个,他们必须按什么顺序称呼?第一close()
还是fclose()
?
>fdopen()
将文件描述符包装到缓冲的 io FILE
结构中,就像您使用 fopen()
打开它一样。
你应该只调用fclose()
,这将关闭os文件描述符并释放所有相关的结构和缓冲区!