.\" Copyright (c) 2011 Apple Inc. All rights reserved. .Dd 1 July, 2011 .Dt xpc 3 .Os Darwin .Sh NAME .Nm xpc .Nd a structured, asynchronous interprocess communication library .Sh SYNOPSIS .Fd #include .Sh DESCRIPTION The XPC framework facilitates interprocess communication using structured messages. Messages are structured using property list style objects such as dictionaries, arrays, strings, integers and UUIDs. Out-of-line types such as file descriptors and shared memory regions are also supported. The root object of each message is a dictionary. .Pp Messages are sent via connections created using .Xr xpc_connection_create 3 and .Xr xpc_connection_create_mach_service 3 . .Pp XPC significantly leverages the on-demand process management features of .Xr launchd 8 to provide transparent process life-cycle management. As such, clients of the XPC framework have little to no responsibility for managing their corresponding service processes. .Pp Consequently, there is no facility in XPC to directly query the execution status of a service. XPC services are simply made available when they are needed, so clients needn't be concerned with remote process state. .Pp Dynamic service registrations (ala .Fn bootstrap_register , .Fn bootstrap_create_service and .Fn bootstrap_create_server ) are also purposefully disallowed. .Pp XPC's integration with .Xr launchd 8 also extends to being able to launch jobs on-demand with higher-level events than have been historically available. Using XPC and launchd together, jobs can be launched based on events in IOKit or the posting of BSD Notifications. .Sh SEE ALSO .Xr xpc_object 3 , .Xr xpc_main 3 , .Xr xpc_connection_create 3 , .Xr xpc_connection_create_mach_service 3 , .Xr xpc_dictionary_create 3 , .Xr xpc_array_create 3 , .Xr xpc_objects 3 , .Xr xpc_events 3 , .Xr xpc_abort 3 , .Xr xpcproxy 8 , .Xr notify 3 , .Xr launchd 8