name: Interprocess Communication API
description: System calls for communication between processes including pipes, signals, and shared memory.
image: https://kinlane-productions.s3.amazonaws.com/apis-json/apis-json-logo.jpg
humanURL: https://man7.org/linux/man-pages/man7/pipe.7.html
baseURL: system://unix/ipc
tags:
- Ipc
- Pipes
- Shared-Memory
- Signals
- Sockets
properties:
- type: Documentation
url: https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
- type: CodeExamples
url: https://beej.us/guide/bgipc/
- type: GettingStarted
url: https://beej.us/guide/bgnet/html/
- type: APIReference
url: https://man7.org/linux/man-pages/man7/pipe.7.html
operations:
- name: pipe
description: Create a pipe for interprocess communication
parameters:
- pipefd[2]
returns: 0 on success, -1 on error
- name: mkfifo
description: Create a named pipe (FIFO special file)
parameters:
- pathname
- mode
returns: 0 on success, -1 on error
- name: signal
description: Install signal handler
parameters:
- signum
- handler
returns: previous signal handler
- name: sigaction
description: Examine and change signal action
parameters:
- signum
- act
- oldact
returns: 0 on success, -1 on error
- name: sigprocmask
description: Examine and change blocked signals
parameters:
- how
- set
- oldset
returns: 0 on success, -1 on error
- name: sigpending
description: Examine pending signals
parameters:
- set
returns: 0 on success, -1 on error
- name: sigsuspend
description: Wait for a signal replacing the signal mask
parameters:
- mask
returns: -1 with errno set to EINTR
- name: socket
description: Create an endpoint for communication
parameters:
- domain
- type
- protocol
returns: file descriptor
- name: bind
description: Bind a name to a socket
parameters:
- sockfd
- addr
- addrlen
returns: 0 on success, -1 on error
- name: listen
description: Listen for connections on a socket
parameters:
- sockfd
- backlog
returns: 0 on success, -1 on error
- name: accept
description: Accept a connection on a socket
parameters:
- sockfd
- addr
- addrlen
returns: file descriptor
- name: connect
description: Initiate a connection on a socket
parameters:
- sockfd
- addr
- addrlen
returns: 0 on success, -1 on error
- name: send
description: Send a message on a socket
parameters:
- sockfd
- buf
- len
- flags
returns: number of bytes sent
- name: recv
description: Receive a message from a socket
parameters:
- sockfd
- buf
- len
- flags
returns: number of bytes received
- name: sendto
description: Send a message on a socket to a specified address
parameters:
- sockfd
- buf
- len
- flags
- dest_addr
- addrlen
returns: number of bytes sent
- name: recvfrom
description: Receive a message from a socket with sender address
parameters:
- sockfd
- buf
- len
- flags
- src_addr
- addrlen
returns: number of bytes received
- name: shutdown
description: Shut down part of a full-duplex connection
parameters:
- sockfd
- how
returns: 0 on success, -1 on error
- name: setsockopt
description: Set options on a socket
parameters:
- sockfd
- level
- optname
- optval
- optlen
returns: 0 on success, -1 on error
- name: getsockopt
description: Get options on a socket
parameters:
- sockfd
- level
- optname
- optval
- optlen
returns: 0 on success, -1 on error
- name: socketpair
description: Create a pair of connected sockets
parameters:
- domain
- type
- protocol
- sv[2]
returns: 0 on success, -1 on error
- name: shmget
description: Allocate shared memory segment
parameters:
- key
- size
- shmflg
returns: shared memory identifier
- name: shmat
description: Attach shared memory segment
parameters:
- shmid
- shmaddr
- shmflg
returns: pointer to shared memory
- name: shmdt
description: Detach shared memory segment
parameters:
- shmaddr
returns: 0 on success, -1 on error
- name: shmctl
description: Shared memory control operations
parameters:
- shmid
- cmd
- buf
returns: depends on cmd, -1 on error
- name: msgget
description: Get a System V message queue identifier
parameters:
- key
- msgflg
returns: message queue identifier
- name: msgsnd
description: Send a message to a System V message queue
parameters:
- msqid
- msgp
- msgsz
- msgflg
returns: 0 on success, -1 on error
- name: msgrcv
description: Receive a message from a System V message queue
parameters:
- msqid
- msgp
- msgsz
- msgtyp
- msgflg
returns: number of bytes copied into msgp
- name: msgctl
description: System V message queue control operations
parameters:
- msqid
- cmd
- buf
returns: depends on cmd, -1 on error