[CentOS] socket: write vs send

Tue Apr 6 19:37:27 UTC 2010
Les Mikesell <lesmikesell at gmail.com>

On 4/6/2010 2:16 PM, Michael D. Berger wrote:
> On CentOS 5.4,
> Linux 2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:18:27 EST 2009
>     i686 i686 i386 GNU/Linux
>
> In man 2 send I find:
>
>    The  send()  call  may  be  used only when the socket is in a connected
>    state (so that the intended recipient is known).  The  only  difference
>    between  send()  and write() is the presence of flags.  With zero flags
>    parameter,    send()    is    equivalent     to     write().
>
> In some complex server software, if the client disconnects:
>      send: delivers errno == ECONNRESET
> but
>      write: crashes the server process.
>
> So it is not really equivalent.  Any thoughts on this?

Are you sure it isn't the normal signal associated with a write when the 
other end closes first that is crashing the process?

-- 
   Les Mikesell
    lesmikesell at gmail.com