Jerry Geis
2010-Aug-19 19:45 UTC
[CentOS] odd situation slightly off topic (sending file descriptors to another process)
I have coded up the standard sendfd() and recvfd() for linux to send and recv file descriptors. seems to work (http://book.chinaunix.net/special/ebook/addisonWesley/APUE2/0201433079/ch17lev1sec4.html) however when I recvfd() my number of open file descriptors bumps by 2 and not 1. (using lsof -p X | wc -l) I am not sure why the count jumps by 2 and not 1. The sendfd() is just sending a socket descriptor. If I close() the provided descriptor it only closes 1 handle (again using lsof above). So my recvfd() is giving me 2 but when I close() I only drop 1 and not 2. Something is not in alignment and just wondering if someone can shed some light on this. Thanks. Jerry
Jerry Geis
2010-Aug-19 20:22 UTC
[CentOS] odd situation slightly off topic (sending file descriptors to another process)
Jerry Geis wrote:> I have coded up the standard sendfd() and recvfd() for linux to send > and recv file descriptors. > seems to work > (http://book.chinaunix.net/special/ebook/addisonWesley/APUE2/0201433079/ch17lev1sec4.html) > > however when I recvfd() my number of open file descriptors bumps by 2 > and not 1. (using lsof -p X | wc -l) > > I am not sure why the count jumps by 2 and not 1. The sendfd() is just > sending a socket descriptor. > If I close() the provided descriptor it only closes 1 handle (again > using lsof above). > > So my recvfd() is giving me 2 but when I close() I only drop 1 and not > 2. Something is not in alignment > and just wondering if someone can shed some light on this. Thanks. > > Jerry >Here is a diff of the lsof output when a new connection is made and the old connection is closed. The lingering /dev/null is evident. I dont know where that is from nor why it does not close upon calling close(). Jerry 13d12 < kendra 13162 root 4u IPv4 999539 TCP devcentos5x64.msgnet.com:6520->am2mm.msgnet.com:52047 (ESTABLISHED) > kendra 13162 root 61u IPv4 999634 TCP devcentos5x64.msgnet.com:6520->am2mm.msgnet.com:60390 (ESTABLISHED) 73a74 > kendra 13162 root 66r CHR 1,3 1749 /dev/null