在许多操作系统下,Unix域套接字允许进程可靠地将其凭据传递给另一个进程,但不能被恶意破坏。例如,这是在Linux上通过SO_PASSCRED and SO_PEERCRED options,在FreeBSD by passing messages that include the cmsgcred structure和NetBSD by setting the LOCAL_CREDS option上完成的。但是,我一直无法找到在Mac OS X下执行此操作的方法。相应的头文件(socket.h)似乎禁用了Apple的构建功能。如何在Mac OS X上通过Unix域套接字传递用户凭据?
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
#ifndef __APPLE__
// ...
struct cmsgcred {
任何想法的另一个Mac OS X设施可以实现相同的结果吗?
确实,在你的指针后面,我发现了unix(4)中记录的选项。谢谢! – 2008-12-11 16:16:37