使用UNIX套接字将文件描述符从一个程序传递到同一主机上的另一个程序

tnx*_*456 4 c linux

我有两个prgrams让我们说prog1和prog2.我正在用prog1打开一个文件并对其进行一些操作.现在没有关闭prog1中的文件,我使用unix套接字将其文件描述符发送到prog2,然后在其中执行一些操作.

虽然我得到了我在prog1中传递的相同描述符,但是在prog2中收到的fd上执行fstat()会抛出错误,说明文件描述符错误.我已经在prog1中打开了具有corerct权限的文件,这些权限对所有人都是读写,但我仍然收到错误.

为什么会这样.如果我传递文件描述符的方式是错误的,那么请建议一个正确的方法.

R..*_*R.. 7

我相信这个网站有你想要的东西:

http://www.lst.de/~okir/blackhats/node121.html

Linux中还有关于Unix套接字的man 7 unix使用SCM_RIGHTS和其他功能的信息.

修复损坏的链接:http://web.archive.org/web/20131016032959/http : //www.lst.de/~okir/blackhats/node121.html