为了获得唯一的 ID,必须使用键。 客户端和服务器进程必须双方都同意这个键。 这代表了为应用程序构建客户端/服务器框架的第一步。
当您使用电话呼叫某人时,您必须知道他们的号码。 此外,电话公司必须知道如何将您的呼出电话转接到最终目的地。 一旦对方通过接听电话做出响应,连接就建立了。
在 System V IPC 机制中,“电话”直接对应于正在使用的对象类型。“电话公司”或路由方法可以直接与 IPC 键关联。
键可以是每次都相同的值,通过将键值硬编码到应用程序中。 这样做有一个缺点,即该键可能已经被使用。 通常,ftok() 函数用于为客户端和服务器生成键值。
LIBRARY FUNCTION: ftok(); PROTOTYPE: key_t ftok ( char *pathname, char proj ); RETURNS: new IPC key value if successful -1 if unsuccessful, errno set to return of stat() call
key_t mykey; mykey = ftok("/tmp/myapp", 'a');
key_t mykey; mykey = ftok(".", 'a');
无论如何获得的键值,都将在后续的 IPC 系统调用中使用,以创建或访问 IPC 对象。