On 4/6/2010 2:48 PM, Michael D. Berger wrote: > On Tue, 06 Apr 2010 14:37:27 -0500, Les Mikesell wrote: > >> 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? > > No, I.m not sure. I found that send also sometimes crashes it. > Sorry for the misleading comment. They should be equivalent - if the other end closes first, you'll get a SIGPIPE, which by default will kill the process. If you want to keep running you have to handle or ignore the signal. -- Les Mikesell lesmikesell at gmail.com