Can close-ing a pipe trigger a SIGPIPE?

Mikhail T. mi+thun at aldan.algebra.com
Sat Oct 17 22:04:55 UTC 2009


Kostik Belousov написав(ла):
>> This 0-size write must be part of the pipe-closing -- descriptors 4 and
>> 5 must be the pipe's:
>>
>>  92722 tclsh8.5 CALL  write(0x4,0x800e24028,0)
>>  92722 tclsh8.5 RET   write -1 errno 32 Broken pipe
>>  92722 tclsh8.5 PSIG  SIGPIPE caught handler=0x800f126d0 mask=0x0 code=0x0
>>  92722 tclsh8.5 CALL  sigreturn(0x7fffffffa0c0)
>>  92722 tclsh8.5 RET   sigreturn JUSTRETURN
>>  92722 tclsh8.5 CALL  close(0x5)
>>  92722 tclsh8.5 RET   close 0
>>  92722 tclsh8.5 CALL  close(0x4)
>>  92722 tclsh8.5 RET   close 0
>>
>> Why would it write 0 bytes? Is doing so triggering a SIGPIPE now -- but,
>> perhaps, didn't use to?
>>     
>
> Obviously, I cannot answer the question. This is something that should
> be read from source code or asked by authors.
>   
You -- or someone else -- could comment like:

a) Yeah, the meaning of write-ing 0 bytes changed in version such and
such to conform to such and such standard.

or

b) No, nothing changed in that area of FreeBSD for years -- there must
be something in Tcl itself.


Yours,

    -mi



More information about the freebsd-stable mailing list