Following table lists the various System calls along with their description.
Category | System Call | Description |
---|---|---|
General | open () | This system call either opens an already existing file or creates and opens a new file. |
General | creat () | Creates and opens a new file. |
General | read () | Reads the contents of the file into the required buffer. |
General | write () | Writes the contents of buffer into the file. |
General | close () | Closes the file descriptor. |
General | stat () | Provides information on the file. |
Pipes | pipe () | Creates pipe for communication which returns two file descriptors for reading and writing. |
Named Pipes or Fifo | mknod () | Creates a memory device file or special file to create FIFOs |
Named Pipes or Fifo | mkfifo () | Creates a new FIFO |
Shared Memory | shmget () | Creates a new shared memory segment or gets the identifier of the existing segment. |
Shared Memory | shmat () | Attaches the shared memory segment and makes the segment a part of the virtual memory of the calling process. |
Shared Memory | shmdt () | Detaches the shared memory segment. |
Shared Memory | shmctl () | Performs control operations for the shared memory. Few of the generic control operations for the shared memory are removing the shared memory segment (IPC_RMID), receiving the information of the shared memory (IPC_STAT) and updating new values of the existing shared memory (IPC_SET). |
Message Queues | msgget () | Creates a new message queue or accesses an already existing message queue and gets the handle or identifier to perform operations with regard to message queue, such as sending message/s to queue and receiving message/s from the queue. |
Message Queues | msgsnd () | Sends a message to the required message queue with the required identification number. |
Message Queues | msgrcv () | Receives a message from the message queue. By default, this is infinite wait operation, means the call will be blocked until it receives a message. |
Message Queues | msgctl () | Performs control operations for the message queue. Few of the generic control operations for the message queue are removing the message queue (IPC_RMID), receiving the information of the message queue (IPC_STAT) and updating new values of the existing message queue (IPC_SET). |
Semaphores | semget () | Creates a new semaphore or gets the identifier of the existing semaphore. Semaphores are used to perform synchronization between various IPCs working on the same object. |
Semaphores | semop () | Performs semaphore operations on semaphore values. The basic semaphore operations are either acquiring or releasing the lock on the semaphore. |
Semaphores | semctl () | Performs control operations for the semaphore. Few of the generic control operations for the semaphore are removing the semaphore (IPC_RMID), receiving the information of the semaphore (IPC_STAT) and updating new values of the existing semaphore (IPC_SET). |
Signals | signal () | Setting the disposition of the signal (signal number) and the signal handler. In other terms, registering the routine, which gets executed when that signal is raised. |
Signals | sigaction () | Same as signal(), setting the disposition of the signal i.e., performing certain action as per the registered signal handler after the receipt of the registered signal. This system call supports finer control over signal() such as blocking certain signals, restoring signal action to the default state after calling the signal handler, providing information such as consumed time of the user and the system, process id of sending process, etc. |
Memory Mapping | mmap () | Mapping files into the memory. Once mapped into the memory, accessing files is as easy as accessing data using addresses and also in this way, the call is not expensive as system calls. |
Memory Mapping | munmap () | Un-mapping the mapped files from the memory. |