ipcintro(3) |
IPC Library Functions |
ipcintro(3) |
ipcintro - an introduction to the IPC library
#include <ipc.h> cc -o prog prog.c -lipc [ ( -lsocket -lnsl ) | -lxnet ]
The inter-process communication library IPC provides a framework on which communication services can be easily built on top of TCP/IP. The IPC library implements an abstraction which is placed logically between the transport layer and the application layer of the TCP/IP protocol stack. The library does not define a new protocol or addressing scheme. Its only purpose is to reduce the complexity of network programming and to assist application programmers with various levels of expertise in programming correct and efficient network applications.It is a well-known problem that the expenditure of implementing the communication part exceeds the implementation of the real application by far. The reduction of this often extrem disparity is a primary goal of the IPC library. Further properties and advantages of the IPC library are:
- A service abstraction to reduce complexity and to hide details of network programming.
- Object-oriented specification of services and communication behaviour.
- Correct, efficient, and safe handling of the underlying communication mechanisms and observance of recommended conventions.
- Control is left completely to the application.
- Compensation of incompatibilities between different operating systems.
- Transparent support for Transaction TCP, regardless whether T/TCP is supported by the underlying operating system.
The IPC library functions provide a simple and convenient interface, hiding the details of network programming, and offer typical mechanisms and facilities to implement client/server applications in particular. The basic abstraction for offered or requested communication services is the IPC communication endpoint. Most of the following IPC library functions operate on this abstraction.
- IpcOpen(3)
- Create and open an IPC communication endpoint.
- IpcPipe(3)
- Create and open an unnamed IPC communication channel.
- IpcClose(3)
- Close an IPC communication endpoint and free all resources.
- IpcMaster(3)
- Return the master's IPC communication endpoint.
- IpcState(3)
- Obtain state information from an IPC communication endpoint.
- IpcSchedule(3)
- Schedule a set of IPC communication endpoints in a fair way.
- IpcSchedIns(3)
- Add an IPC communication endpoint to the set of scheduled IPCs.
- IpcSchedDel(3)
- Remove an IPC communication endpoint from the set of scheduled IPCs.
- IpcIsReadable(3)
- Check an IPC communication endpoint for readability.
- IpcIsWritable(3)
- Check an IPC communication endpoint for writability.
- IpcSetArg(3)
- Compose an IPC argument list in a stylized manner.
- IpcSetValues(3)
- Modify IPC resources.
- IpcVaSetValues(3)
- Convenient wrapper for IpcSetValues()
with a varying number of arguments.- IpcGetValues(3)
- Obtain IPC resources.
- IpcVaGetValues(3)
- Convenient wrapper for IpcGetValues()
with a varying number of arguments.
- IpcAddCallback(3)
- Register a callback procedure with an event class.
- IpcDelCallback(3)
- Delete a registered callback procedure from an event class.
- IpcHasCallback(3)
- Check whether an event class has a callback procedure registered.
- IpcCallCallback(3)
- Call a callback procedure of an event class.
- IpcSend(3)
- Send data over an IPC communication channel.
- IpcSendV(3)
- Send data, gathered from multiple buffers,
over an IPC communication channel.- IpcRecv(3)
- Receive data from an IPC communication endpoint.
- IpcRecvV(3)
- Receive data, scattered into multiple buffers,
from an IPC communication endpoint.
- IpcSendIPC(3)
- Send an IPC communication endpoint
over an IPC communication channel.- IpcRecvIPC(3)
- Receive an IPC communication endpoint
over an IPC communication channel.- IpcSendFd(3)
- Send a file descriptor over an IPC communication channel.
- IpcRecvFd(3)
- Receive a file descriptor over an IPC communication channel.
- IpcClone(3)
- Clone the current process.
- IpcDaemonize(3)
- Daemonize a process.
- IpcSignal(3)
- Simplified secure signal facility.
- IpcBlockEvents(3)
- Block events from occurring in critical situations.
- IpcUnblockEvents(3)
- Unblock and process pending events.
- IpcStrError(3)
- IPC error codes and message strings.
- IpcOpenLog(3)
- Initialize IPC error logging.
- IpcLog(3)
- Control IPC error logging.
- ipcpm(8)
- IPC portmapper daemon mapping service names to addresses.
- ipcpminfo(8)
- IPC portmapper client.
socket
(2),
inet
(4),tcp
(4),ttcp
(4),ip
(4).The specified manual sections may vary on different operating systems.
The IPC library itself is implemented in the C programming language and uses the Berkeley socket interface to communicate in the local and Internet domain.