que tiene un descriptor de socket TCP de la siguiente manera:¿Se pueden convertir las descripciones de los sockets en punteros de archivo?
int desc = accept(socket_descriptor, &client_address, &len)
Ahora, desde este descriptor desc
Quiero conseguir un apuntador de archivo. ¿Se puede usar fdopen()
aquí?
La razón por la que deseo obtener un puntero de archivo es porque estoy realizando cambios en un código existente que escribe datos en un archivo local. Ahora, quiero extender su funcionalidad para que pueda escribir alternativamente en un cliente TCP. No quiero volver a escribir todas las funciones y estaba pensando en poder usar la infraestructura existente de alguna manera. Las funciones existentes usan el puntero del archivo para escribir en el archivo. Me preguntaba si era posible hacer que la misma función escriba en una transmisión TCP sin realizar ningún cambio.
La mayoría de los archivos no están en búfer de línea, solo 'stdout'. No estoy seguro de si hay una forma de configurar un archivo para que sea búfer de línea, pero creo que la mayoría se almacenará en búfer de bloque, lo que debería ser un poco más compatible con el socket. –
@ChrisLutz: la función es 'setlinebuf'. Creo que 'stdout' solo está almacenado en la línea si está enganchado a una terminal, pero no estoy seguro. –
@DietrichEpp - Gracias. Y creo que tienes razón sobre 'stdout'. –