如果我创建一个套接字
sockfd = socket(...);
然后我通过调用将其关联到FILE流
FILE* f=fdopen(sockfd,"r+");
我应该同时呼叫close(sockfd);
和fclose(f);
还是只呼叫close(sockfd);
?如果我不叫fclose(f)
,FILE结构会怎样?
(最重要的),如果我要同时调用它们,则必须按什么顺序调用它们?前close()
或fclose()
?
答案 0 :(得分:1)
fdopen()
将文件描述符包装到一个缓冲的io FILE
结构中,就像用fopen()
打开它一样。
您只应调用fclose()
,这将关闭os文件描述符并释放所有关联的结构和缓冲区!