我以以下方式获得TCP套接字的描述符:
``` int desc = accept(socket_descriptor, &client_address, &len) ```
现在我想从这个描述符 `desc` 中获取一个文件指针。可以使用 `fdopen()` 吗?
我想获取一个文件指针的原因是,我正在修改现有代码,该代码将数据写入本地文件。现在,我想扩展其功能,使其可以选择性地写入TCP客户端。我不想重写所有函数,并考虑通过某种方式使用现有基础设施。现有函数使用文件指针将数据写入文件。我想知道是否可能使同一函数在不做任何更改的情况下写入TCP流。
``` int desc = accept(socket_descriptor, &client_address, &len) ```
现在我想从这个描述符 `desc` 中获取一个文件指针。可以使用 `fdopen()` 吗?
我想获取一个文件指针的原因是,我正在修改现有代码,该代码将数据写入本地文件。现在,我想扩展其功能,使其可以选择性地写入TCP客户端。我不想重写所有函数,并考虑通过某种方式使用现有基础设施。现有函数使用文件指针将数据写入文件。我想知道是否可能使同一函数在不做任何更改的情况下写入TCP流。
stdout
是。我不确定是否有一种方法可以将文件设置为行缓冲,但我相信大多数都是块缓冲的,这应该更适合套接字。 - Chris Lutz