相关系统调用(System V)
精华
小牛编辑
166浏览
2023-03-14
下表列出了各种系统调用及其描述。
分类 | 系统调用 | 描述 |
---|---|---|
普通 | 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() |
从内存中取消映射映射的文件。 |