¿Es un envío exitoso () "atómico"?

¿Una llamada exitosa a send () con el número devuelto igual a la cantidad especificada en el parámetro de tamaño garantiza que no se realizarán "envíos parciales"?

¿O hay alguna forma de que el sistema operativo se interrumpa mientras atiende la llamada del sistema, envía parte de los datos, espera un tiempo posiblemente largo, luego envía el resto y regresa sin notificarme con un valor de retorno menor?

No estoy hablando de un caso en el que no hay suficiente espacio en el búfer del núcleo; Me doy cuenta de que obtendría un valor de retorno más pequeño y tendría que intentarlo nuevamente.

Actualizar Según las respuestas hasta ahora, mi pregunta podría reformularse de la siguiente manera:

¿Hay alguna forma de enviar paquetes / datos por cable?antes d devuelve la llamada a send ()

Respuestas a la pregunta(2)

Su respuesta a la pregunta