3

如果我创建一个套接字

sockfd = socket(...);

然后我通过调用将它关联到 FILE 流

FILE* f=fdopen(sockfd,"r+");

我应该同时调用close(sockfd);andfclose(f);还是只调用close(sockfd);?如果我打电话或不打电话,文件结构会发生什么fclose(f)

并且(最重要的),如果我应该同时调用它们,它们必须按什么顺序调用?首先close()还是fclose()

4

1 回答 1

2

fdopen()将文件描述符包装到缓冲的 ioFILE结构中,就像您使用fopen().

您应该只调用fclose(),这将关闭 os 文件描述符并释放所有关联的结构和缓冲区!

于 2019-02-07T00:15:01.920 回答