相关系统调用(System V)

下表列出了各种系统调用及其说明。

类别 系统调用 说明
常规 open () 此系统调用可以打开已存在的文件或创建并打开新文件。
常规 creat () 创建并打开新文件文件。
常规 read () 将文件内容读入所需缓冲区。
常规 write () 将缓冲区内容写入文件。
常规 close () 关闭文件描述符。
常规 stat () 提供有关文件的信息。
管道 pipe () 创建用于通信的管道,该管道返回两个用于读取和写入的文件描述符。
命名管道或 Fifo mknod () 创建内存设备文件或特殊文件以创建 FIFO
命名管道或 Fifo mkfifo () 创建一个新的FIFO
共享内存 shmget () 创建新的共享内存段或获取现有段的标识符。
共享内存 shmat () 附加共享内存段并使该段成为调用进程的虚拟内存的一部分。
共享内存 shmdt () 分离共享内存段。
共享内存 shmctl () 执行共享内存的控制操作。共享内存的通用控制操作包括删除共享内存段 (IPC_RMID)、接收共享内存信息 (IPC_STAT) 和更新现有共享内存的新值 (IPC_SET)。
消息队列 msgget () 创建新的消息队列或访问现有消息队列并获取句柄或标识符以执行与消息队列相关的操作,例如向队列发送消息和从队列接收消息。
消息队列 msgsnd () 使用所需的标识号向所需的消息队列发送消息。
消息队列 msgrcv () 从消息队列接收消息。默认情况下,这是无限等待操作,意味着调用将被阻止,直到收到消息。
消息队列 msgctl () 执行消息队列的控制操作。消息队列的一些通用控制操作包括删除消息队列(IPC_RMID)、接收消息队列的信息(IPC_STAT)和更新现有消息队列的新值(IPC_SET)。
信号量 semget () 创建新信号量或获取现有信号量的标识符。信号量用于在同一对象上工作的各种 IPC 之间执行同步。
信号量 semop () 对信号量值执行信号量操作。信号量的基本操作是获取或释放信号量上的锁。
信号量 semctl () 执行信号量的控制操作。信号量的一般控制操作包括移除信号量 (IPC_RMID)、接收信号量信息 (IPC_STAT) 和更新现有信号量的新值 (IPC_SET)。
信号 signal () 设置信号的处置(信号编号)和信号处理程序。换句话说,注册在信号发出时执行的例程。
信号 sigaction() 与signal()相同,设置信号的处置,即在收到注册的信号后,按照注册的信号处理程序执行某些操作。此系统调用支持对signal()进行更精细的控制,例如阻止某些信号,调用信号处理程序后将信号操作恢复为默认状态,提供用户和系统消耗的时间、发送进程的进程id等信息。
内存映射 mmap() 将文件映射到内存中。一旦映射到内存中,访问文件就和使用地址访问数据一样简单,而且这样调用不像系统调用那样昂贵。
内存映射 munmap () 从内存中取消映射文件。