Linux系统调用列表

Linux系统调用列表

                                     

本文列出了大部分常见的Linux系统调用,并附有简要中文说明。
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和 由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一 篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表 ,能做到这么完全也是很罕见的。
按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解 ,对其作了大致的分类,同时也作了一些小小的修改 ,删去了几个仅供内核使用,不允许用户调用的系统调用 ,对个别本人稍觉不妥的地方作了一些小的修改,并对所有列出的系统 调用附上简要注释。
其中有一些函数的作用完全相同,只是参数不同。(可能很多熟悉C ++朋友马上就能联想起函数重载,但是别忘了Linux核心是用C 语言写的,所以只能取成不同的函数名)。还有一些函数已经过时 ,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告 ),但因为兼容的原因还保留着,这些函数我会在前面标上“* ”号以示区别。
fork创建一个新进程
clone按指定条件创建子进程
execve运行可执行文件
exit中止进程
_exit立即中止当前进程
getdtablesize进程所能打开的最大文件数
getpgid获取指定进程组标识号
setpgid设置指定进程组标志号
getpgrp获取当前进程组标识号
setpgrp设置当前进程组标志号
getpid获取进程标识号
getppid获取父进程标识号
getpriority获取调度优先级
setpriority设置调度优先级
modify_ldt读写进程的本地描述表
nanosleep使进程睡眠指定的时间
nice改变分时进程的优先级
pause挂起进程,等待信号<script type="text/javascript"> <!-- D(["mb","</td></tr>/r/n <tr>/r/n <td>personality</td>/r/n <td>设置进程运行域</td></tr>/r/n <tr>/r/n <td>prctl</td>/r/n <td>对进程进行特定操作</td></tr>/r/n <tr>/r/n <td>ptrace</td>/r/n <td>进程跟踪</td></tr>/r/n <tr>/r/n <td>sched_get_priority_max</td>/r/n <td>取得静态优先级的上限</td></tr>/r/n <tr>/r/n <td>sched_get_priority_min</td>/r/n <td>取得静态优先级的下限</td></tr>/r/n <tr>/r/n <td>sched_getparam</td>/r/n <td>取得进程的调度参数</td></tr>/r/n <tr>/r/n <td>sched_getscheduler</td>/r/n <td>取得指定进程的调度策略</td></tr>/r/n <tr>/r/n <td>sched_rr_get_interval</td>/r/n <td>取得按RR算法调度的实时进程的时间片长度</td></tr>/r/n <tr>/r/n <td>sched_setparam</td>/r/n <td>设置进程的调度参数</td></tr>/r/n <tr>/r/n <td>sched_setscheduler</td>/r/n <td>设置指定进程的调度策略和参数</td></tr>/r/n <tr>/r/n <td>sched_yield</td>/r/n <td>进程主动让出处理器,并将自己等候调度队列队尾</td></tr>/r/n <tr>/r/n <td>vfork</td>/r/n <td>创建一个子进程,以供执行新程序,常与execve等同时使用</td></tr>/r/n <tr>/r/n <td>wait</td>/r/n <td>等待子进程终止</td></tr>/r/n <tr>/r/n <td>wait3</td>/r/n <td>参见wait</td></tr>/r/n <tr>/r/n <td>waitpid</td>/r/n <td>等待指定子进程终止</td></tr>/r/n <tr>/r/n <td>wait4</td>/r/n <td>参见waitpid</td></tr>/r/n <tr>/r/n <td>capget</td>/r/n <td>获取进程权限</td></tr>/r/n <tr>/r/n <td>capset</td>/r/n <td>设置进程权限</td></tr>/r/n <tr>/r/n <td>getsid</td>/r/n <td>获取会晤标识号</td></tr>/r/n <tr>/r/n <td>setsid</td>/r/n <td>设置会晤标识号</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_2/">二、文件系统控制</a></div>/r/n<div>1、文件读写操作</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">fcntl</td>/r/n <td>文件控制</td></tr>/r/n <tr>/r/n <td>open</td>/r/n <td>打开文件</td></tr>/r/n <tr>/r/n <td>creat</td>/r/n <td>创建新文件</td></tr>/r/n <tr>/r/n <td>close</td>/r/n <td>关闭文件描述字</td></tr>/r/n <tr>/r/n <td>read</td>/r/n <td>读文件</td></tr>/r/n <tr>/r/n <td>write</td>/r/n <td>写文件</td></tr>/r/n <tr>/r/n <td>readv</td>/r/n <td>从文件读入数据到缓冲数组中</td></tr>/r/n <tr>/r/n <td>writev</td>/r/n <td>将缓冲数组里的数据写入文件</td></tr>/r/n <tr>/r/n <td>pread</td>/r/n <td>对文件随机读</td></tr>/r/n <tr>/r/n <td>pwrite</td>/r/n <td>对文件随机写",1] ); //--> </script>
personality设置进程运行域
prctl对进程进行特定操作
ptrace进程跟踪
sched_get_priority_max取得静态优先级的上限
sched_get_priority_min取得静态优先级的下限
sched_getparam取得进程的调度参数
sched_getscheduler取得指定进程的调度策略
sched_rr_get_interval取得按RR算法调度的实时进程的时间片长度
sched_setparam设置进程的调度参数
sched_setscheduler设置指定进程的调度策略和参数
sched_yield进程主动让出处理器,并将自己等候调度队列队尾
vfork创建一个子进程,以供执行新程序,常与execve等同时使用
wait等待子进程终止
wait3参见wait
waitpid等待指定子进程终止
wait4参见waitpid
capget获取进程权限
capset设置进程权限
getsid获取会晤标识号
setsid设置会晤标识号


1、文件读写操作
fcntl文件控制
open打开文件
creat创建新文件
close关闭文件描述字
read读文件
write写文件
readv从文件读入数据到缓冲数组中
writev将缓冲数组里的数据写入文件
pread对文件随机读
pwrite对文件随机写<script type="text/javascript"> <!-- D(["mb","</td></tr>/r/n <tr>/r/n <td>lseek</td>/r/n <td>移动文件指针</td></tr>/r/n <tr>/r/n <td>_llseek</td>/r/n <td>在64位地址空间里移动文件指针</td></tr>/r/n <tr>/r/n <td>dup</td>/r/n <td>复制已打开的文件描述字</td></tr>/r/n <tr>/r/n <td>dup2</td>/r/n <td>按指定条件复制文件描述字</td></tr>/r/n <tr>/r/n <td>flock</td>/r/n <td>文件加/解锁</td></tr>/r/n <tr>/r/n <td>poll</td>/r/n <td>I/O多路转换</td></tr>/r/n <tr>/r/n <td>truncate</td>/r/n <td>截断文件</td></tr>/r/n <tr>/r/n <td>ftruncate</td>/r/n <td>参见truncate</td></tr>/r/n <tr>/r/n <td>umask</td>/r/n <td>设置文件权限掩码</td></tr>/r/n <tr>/r/n <td>fsync</td>/r/n <td>把文件在内存中的部分写回磁盘</td></tr></tbody></table><br><br>/r/n<div>2、文件系统操作</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">access</td>/r/n <td>确定文件的可存取性</td></tr>/r/n <tr>/r/n <td>chdir</td>/r/n <td>改变当前工作目录</td></tr>/r/n <tr>/r/n <td>fchdir</td>/r/n <td>参见chdir</td></tr>/r/n <tr>/r/n <td>chmod</td>/r/n <td>改变文件方式</td></tr>/r/n <tr>/r/n <td>fchmod</td>/r/n <td>参见chmod</td></tr>/r/n <tr>/r/n <td>chown</td>/r/n <td>改变文件的属主或用户组</td></tr>/r/n <tr>/r/n <td>fchown</td>/r/n <td>参见chown</td></tr>/r/n <tr>/r/n <td>lchown</td>/r/n <td>参见chown</td></tr>/r/n <tr>/r/n <td>chroot</td>/r/n <td>改变根目录</td></tr>/r/n <tr>/r/n <td>stat</td>/r/n <td>取文件状态信息</td></tr>/r/n <tr>/r/n <td>lstat</td>/r/n <td>参见stat</td></tr>/r/n <tr>/r/n <td>fstat</td>/r/n <td>参见stat</td></tr>/r/n <tr>/r/n <td>statfs</td>/r/n <td>取文件系统信息</td></tr>/r/n <tr>/r/n <td>fstatfs</td>/r/n <td>参见statfs</td></tr>/r/n <tr>/r/n <td>readdir</td>/r/n <td>读取目录项</td></tr>/r/n <tr>/r/n <td>getdents</td>/r/n <td>读取目录项</td></tr>/r/n <tr>/r/n <td>mkdir</td>/r/n <td>创建目录</td></tr>/r/n <tr>/r/n <td>mknod</td>/r/n <td>创建索引节点</td></tr>/r/n <tr>/r/n <td>rmdir</td>/r/n <td>删除目录</td></tr>/r/n <tr>/r/n <td>rename</td>/r/n <td>文件改名</td></tr>/r/n <tr>/r/n <td>link</td>/r/n <td>创建链接</td></tr>/r/n <tr>/r/n <td>symlink</td>/r/n <td>创建符号链接</td></tr>/r/n <tr>/r/n <td>unlink</td>/r/n <td>删除链接</td></tr>/r/n <tr>/r/n <td>readlink</td>/r/n <td>",1] ); //--> </script>
lseek移动文件指针
_llseek在64位地址空间里移动文件指针
dup复制已打开的文件描述字
dup2按指定条件复制文件描述字
flock文件加/解锁
pollI/O多路转换
truncate截断文件
ftruncate参见truncate
umask设置文件权限掩码
fsync把文件在内存中的部分写回磁盘


2、文件系统操作
access确定文件的可存取性
chdir改变当前工作目录
fchdir参见chdir
chmod改变文件方式
fchmod参见chmod
chown改变文件的属主或用户组
fchown参见chown
lchown参见chown
chroot改变根目录
stat取文件状态信息
lstat参见stat
fstat参见stat
statfs取文件系统信息
fstatfs参见statfs
readdir读取目录项
getdents读取目录项
mkdir创建目录
mknod创建索引节点
rmdir删除目录
rename文件改名
link创建链接
symlink创建符号链接
unlink删除链接
readlink<script type="text/javascript"> <!-- D(["mb","读符号链接的值</td></tr>/r/n <tr>/r/n <td>mount</td>/r/n <td>安装文件系统</td></tr>/r/n <tr>/r/n <td>umount</td>/r/n <td>卸下文件系统</td></tr>/r/n <tr>/r/n <td>ustat</td>/r/n <td>取文件系统信息</td></tr>/r/n <tr>/r/n <td>utime</td>/r/n <td>改变文件的访问修改时间</td></tr>/r/n <tr>/r/n <td>utimes</td>/r/n <td>参见utime</td></tr>/r/n <tr>/r/n <td>quotactl</td>/r/n <td>控制磁盘配额</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_3/">三、系统控制</a></div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">ioctl</td>/r/n <td>I/O总控制函数</td></tr>/r/n <tr>/r/n <td>_sysctl</td>/r/n <td>读/写系统参数</td></tr>/r/n <tr>/r/n <td>acct</td>/r/n <td>启用或禁止进程记账</td></tr>/r/n <tr>/r/n <td>getrlimit</td>/r/n <td>获取系统资源上限</td></tr>/r/n <tr>/r/n <td>setrlimit</td>/r/n <td>设置系统资源上限</td></tr>/r/n <tr>/r/n <td>getrusage</td>/r/n <td>获取系统资源使用情况</td></tr>/r/n <tr>/r/n <td>uselib</td>/r/n <td>选择要使用的二进制函数库</td></tr>/r/n <tr>/r/n <td>ioperm</td>/r/n <td>设置端口I/O权限</td></tr>/r/n <tr>/r/n <td>iopl</td>/r/n <td>改变进程I/O权限级别</td></tr>/r/n <tr>/r/n <td>outb</td>/r/n <td>低级端口操作</td></tr>/r/n <tr>/r/n <td>reboot</td>/r/n <td>重新启动</td></tr>/r/n <tr>/r/n <td>swapon</td>/r/n <td>打开交换文件和设备</td></tr>/r/n <tr>/r/n <td>swapoff</td>/r/n <td>关闭交换文件和设备</td></tr>/r/n <tr>/r/n <td>bdflush</td>/r/n <td>控制bdflush守护进程</td></tr>/r/n <tr>/r/n <td>sysfs</td>/r/n <td>取核心支持的文件系统类型</td></tr>/r/n <tr>/r/n <td>sysinfo</td>/r/n <td>取得系统信息</td></tr>/r/n <tr>/r/n <td>adjtimex</td>/r/n <td>调整系统时钟</td></tr>/r/n <tr>/r/n <td>alarm</td>/r/n <td>设置进程的闹钟</td></tr>/r/n <tr>/r/n <td>getitimer</td>/r/n <td>获取计时器值</td></tr>/r/n <tr>/r/n <td>setitimer</td>/r/n <td>设置计时器值</td></tr>/r/n <tr>/r/n <td>gettimeofday</td>/r/n <td>取时间和时区</td></tr>/r/n <tr>/r/n <td>settimeofday</td>/r/n <td>设置时间和时区</td></tr>/r/n <tr>/r/n <td>stime</td>/r/n <td>设置系统日期和时间</td></tr>/r/n <tr>/r/n <td>time</td>/r/n <td>取得系统时间</td></tr>/r/n <tr>/r/n <td>times</td>/r/n <td>取进程运行时间</td></tr>/r/n <tr>/r/n <td>uname</td>/r/n <td>获取当前UNIX系统的名称、版本和主机等信息",1] ); //--> </script>读符号链接的值
mount安装文件系统
umount卸下文件系统
ustat取文件系统信息
utime改变文件的访问修改时间
utimes参见utime
quotactl控制磁盘配额


ioctlI/O总控制函数
_sysctl读/写系统参数
acct启用或禁止进程记账
getrlimit获取系统资源上限
setrlimit设置系统资源上限
getrusage获取系统资源使用情况
uselib选择要使用的二进制函数库
ioperm设置端口I/O权限
iopl改变进程I/O权限级别
outb低级端口操作
reboot重新启动
swapon打开交换文件和设备
swapoff关闭交换文件和设备
bdflush控制bdflush守护进程
sysfs取核心支持的文件系统类型
sysinfo取得系统信息
adjtimex调整系统时钟
alarm设置进程的闹钟
getitimer获取计时器值
setitimer设置计时器值
gettimeofday取时间和时区
settimeofday设置时间和时区
stime设置系统日期和时间
time取得系统时间
times取进程运行时间
uname获取当前UNIX系统的名称、版本和主机等信息<script type="text/javascript"> <!-- D(["mb","</td></tr>/r/n <tr>/r/n <td>vhangup</td>/r/n <td>挂起当前终端</td></tr>/r/n <tr>/r/n <td>nfsservctl</td>/r/n <td>对NFS守护进程进行控制</td></tr>/r/n <tr>/r/n <td>vm86</td>/r/n <td>进入模拟8086模式</td></tr>/r/n <tr>/r/n <td>create_module</td>/r/n <td>创建可装载的模块项</td></tr>/r/n <tr>/r/n <td>delete_module</td>/r/n <td>删除可装载的模块项</td></tr>/r/n <tr>/r/n <td>init_module</td>/r/n <td>初始化模块</td></tr>/r/n <tr>/r/n <td>query_module</td>/r/n <td>查询模块信息</td></tr>/r/n <tr>/r/n <td>*get_kernel_syms</td>/r/n <td>取得核心符号,已被query_module代替</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_4/">四、内存管理</a></div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">brk</td>/r/n <td>改变数据段空间的分配</td></tr>/r/n <tr>/r/n <td>sbrk</td>/r/n <td>参见brk</td></tr>/r/n <tr>/r/n <td>mlock</td>/r/n <td>内存页面加锁</td></tr>/r/n <tr>/r/n <td>munlock</td>/r/n <td>内存页面解锁</td></tr>/r/n <tr>/r/n <td>mlockall</td>/r/n <td>调用进程所有内存页面加锁</td></tr>/r/n <tr>/r/n <td>munlockall</td>/r/n <td>调用进程所有内存页面解锁</td></tr>/r/n <tr>/r/n <td>mmap</td>/r/n <td>映射虚拟内存页</td></tr>/r/n <tr>/r/n <td>munmap</td>/r/n <td>去除内存页映射</td></tr>/r/n <tr>/r/n <td>mremap</td>/r/n <td>重新映射虚拟内存地址</td></tr>/r/n <tr>/r/n <td>msync</td>/r/n <td>将映射内存中的数据写回磁盘</td></tr>/r/n <tr>/r/n <td>mprotect</td>/r/n <td>设置内存映像保护</td></tr>/r/n <tr>/r/n <td>getpagesize</td>/r/n <td>获取页面大小</td></tr>/r/n <tr>/r/n <td>sync</td>/r/n <td>将内存缓冲区数据写回硬盘</td></tr>/r/n <tr>/r/n <td>cacheflush</td>/r/n <td>将指定缓冲区中的内容写回磁盘</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_5/">五、网络管理</a></div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">getdomainname</td>/r/n <td>取域名</td></tr>/r/n <tr>/r/n <td>setdomainname</td>/r/n <td>设置域名</td></tr>/r/n <tr>/r/n <td>gethostid</td>/r/n <td>获取主机标识号</td></tr>/r/n <tr>/r/n <td>sethostid</td>/r/n <td>设置主机标识号</td></tr>/r/n <tr>/r/n <td>gethostname</td>/r/n <td>获取本主机名称</td></tr>/r/n <tr>/r/n <td>sethostname",1] ); //--> </script>
vhangup挂起当前终端
nfsservctl对NFS守护进程进行控制
vm86进入模拟8086模式
create_module创建可装载的模块项
delete_module删除可装载的模块项
init_module初始化模块
query_module查询模块信息
*get_kernel_syms取得核心符号,已被query_module代替


brk改变数据段空间的分配
sbrk参见brk
mlock内存页面加锁
munlock内存页面解锁
mlockall调用进程所有内存页面加锁
munlockall调用进程所有内存页面解锁
mmap映射虚拟内存页
munmap去除内存页映射
mremap重新映射虚拟内存地址
msync将映射内存中的数据写回磁盘
mprotect设置内存映像保护
getpagesize获取页面大小
sync将内存缓冲区数据写回硬盘
cacheflush将指定缓冲区中的内容写回磁盘


getdomainname取域名
setdomainname设置域名
gethostid获取主机标识号
sethostid设置主机标识号
gethostname获取本主机名称
sethostname<script type="text/javascript"> <!-- D(["mb","</td>/r/n <td>设置主机名称</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_6/">六、socket控制</a></div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">socketcall</td>/r/n <td>socket系统调用</td></tr>/r/n <tr>/r/n <td>socket</td>/r/n <td>建立socket</td></tr>/r/n <tr>/r/n <td>bind</td>/r/n <td>绑定socket到端口</td></tr>/r/n <tr>/r/n <td>connect</td>/r/n <td>连接远程主机</td></tr>/r/n <tr>/r/n <td>accept</td>/r/n <td>响应socket连接请求</td></tr>/r/n <tr>/r/n <td>send</td>/r/n <td>通过socket发送信息</td></tr>/r/n <tr>/r/n <td>sendto</td>/r/n <td>发送UDP信息</td></tr>/r/n <tr>/r/n <td>sendmsg</td>/r/n <td>参见send</td></tr>/r/n <tr>/r/n <td>recv</td>/r/n <td>通过socket接收信息</td></tr>/r/n <tr>/r/n <td>recvfrom</td>/r/n <td>接收UDP信息</td></tr>/r/n <tr>/r/n <td>recvmsg</td>/r/n <td>参见recv</td></tr>/r/n <tr>/r/n <td>listen</td>/r/n <td>监听socket端口</td></tr>/r/n <tr>/r/n <td>select</td>/r/n <td>对多路同步I/O进行轮询</td></tr>/r/n <tr>/r/n <td>shutdown</td>/r/n <td>关闭socket上的连接</td></tr>/r/n <tr>/r/n <td>getsockname</td>/r/n <td>取得本地socket名字</td></tr>/r/n <tr>/r/n <td>getpeername</td>/r/n <td>获取通信对方的socket名字</td></tr>/r/n <tr>/r/n <td>getsockopt</td>/r/n <td>取端口设置</td></tr>/r/n <tr>/r/n <td>setsockopt</td>/r/n <td>设置端口参数</td></tr>/r/n <tr>/r/n <td>sendfile</td>/r/n <td>在文件或端口间传输数据</td></tr>/r/n <tr>/r/n <td>socketpair</td>/r/n <td>创建一对已联接的无名socket</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_7/">七、用户管理</a></div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">getuid</td>/r/n <td>获取用户标识号</td></tr>/r/n <tr>/r/n <td>setuid</td>/r/n <td>设置用户标志号</td></tr>/r/n <tr>/r/n <td>getgid</td>/r/n <td>获取组标识号</td></tr>/r/n <tr>/r/n <td>setgid</td>/r/n <td>设置组标志号</td></tr>/r/n <tr>/r/n <td>getegid</td>/r/n <td>获取有效组标识号</td></tr>/r/n <tr>/r/n <td>setegid</td>/r/n <td>设置有效组标识号</td></tr>/r/n <tr>/r/n <td>geteuid</td>/r/n <td>获取有效用户标识号</td></tr>/r/n <tr>/r/n <td>seteuid</td>/r/n ",1] ); //--> </script> 设置主机名称


socketcallsocket系统调用
socket建立socket
bind绑定socket到端口
connect连接远程主机
accept响应socket连接请求
send通过socket发送信息
sendto发送UDP信息
sendmsg参见send
recv通过socket接收信息
recvfrom接收UDP信息
recvmsg参见recv
listen监听socket端口
select对多路同步I/O进行轮询
shutdown关闭socket上的连接
getsockname取得本地socket名字
getpeername获取通信对方的socket名字
getsockopt取端口设置
setsockopt设置端口参数
sendfile在文件或端口间传输数据
socketpair创建一对已联接的无名socket


getuid获取用户标识号
setuid设置用户标志号
getgid获取组标识号
setgid设置组标志号
getegid获取有效组标识号
setegid设置有效组标识号
geteuid获取有效用户标识号
seteuid
<script type="text/javascript"> <!-- D(["mb","<td>设置有效用户标识号</td></tr>/r/n <tr>/r/n <td>setregid</td>/r/n <td>分别设置真实和有效的的组标识号</td></tr>/r/n <tr>/r/n <td>setreuid</td>/r/n <td>分别设置真实和有效的用户标识号</td></tr>/r/n <tr>/r/n <td>getresgid</td>/r/n <td>分别获取真实的,有效的和保存过的组标识号</td></tr>/r/n <tr>/r/n <td>setresgid</td>/r/n <td>分别设置真实的,有效的和保存过的组标识号</td></tr>/r/n <tr>/r/n <td>getresuid</td>/r/n <td>分别获取真实的,有效的和保存过的用户标识号</td></tr>/r/n <tr>/r/n <td>setresuid</td>/r/n <td>分别设置真实的,有效的和保存过的用户标识号</td></tr>/r/n <tr>/r/n <td>setfsgid</td>/r/n <td>设置文件系统检查时使用的组标识号</td></tr>/r/n <tr>/r/n <td>setfsuid</td>/r/n <td>设置文件系统检查时使用的用户标识号</td></tr>/r/n <tr>/r/n <td>getgroups</td>/r/n <td>获取后补组标志清单</td></tr>/r/n <tr>/r/n <td>setgroups</td>/r/n <td>设置后补组标志清单</td></tr></tbody></table><br><br>/r/n<div><a name=/"103f9f3699778b34_8/">八、进程间通信</a></div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">ipc</td>/r/n <td>进程间通信总控制调用</td></tr></tbody></table><br><br>/r/n<div>1、信号</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">sigaction</td>/r/n <td>设置对指定信号的处理方法</td></tr>/r/n <tr>/r/n <td>sigprocmask</td>/r/n <td>根据参数对信号集中的信号执行阻塞/解除阻塞等操作</td></tr>/r/n <tr>/r/n <td>sigpending</td>/r/n <td>为指定的被阻塞信号设置队列</td></tr>/r/n <tr>/r/n <td>sigsuspend</td>/r/n <td>挂起进程等待特定信号</td></tr>/r/n <tr>/r/n <td>signal</td>/r/n <td>参见signal</td></tr>/r/n <tr>/r/n <td>kill</td>/r/n <td>向进程或进程组发信号</td></tr>/r/n <tr>/r/n <td>*sigblock</td>/r/n <td>向被阻塞信号掩码中添加信号,已被sigprocmask代替</td></tr>/r/n <tr>/r/n <td>*siggetmask</td>/r/n <td>取得现有阻塞信号掩码,已被sigprocmask代替</td></tr>/r/n <tr>/r/n <td>*sigsetmask</td>/r/n <td>用给定信号掩码替换现有阻塞信号掩码,已被sigprocmask<WBR>代替</td></tr>/r/n <tr>/r/n <td>*sigmask</td>/r/n <td>将给定的信号转化为掩码,已被sigprocmask代替</td></tr>/r/n <tr>/r/n <td>*sigpause</td>/r/n <td>作用同sigsuspend,已被sigsuspend代替</td></tr>/r/n <tr>/r/n <td>sigvec</td>/r/n <td>为兼容BSD而设的信号处理函数,作用类似sigaction</td></tr>/r/n <tr>/r/n <td>ssetmask</td>/r/n <td>ANSI C的信号处理函数,作用类似sigaction</td>",1] ); //--> </script>
设置有效用户标识号
setregid分别设置真实和有效的的组标识号
setreuid分别设置真实和有效的用户标识号
getresgid分别获取真实的,有效的和保存过的组标识号
setresgid分别设置真实的,有效的和保存过的组标识号
getresuid分别获取真实的,有效的和保存过的用户标识号
setresuid分别设置真实的,有效的和保存过的用户标识号
setfsgid设置文件系统检查时使用的组标识号
setfsuid设置文件系统检查时使用的用户标识号
getgroups获取后补组标志清单
setgroups设置后补组标志清单


ipc进程间通信总控制调用


1、信号
sigaction设置对指定信号的处理方法
sigprocmask根据参数对信号集中的信号执行阻塞/解除阻塞等操作
sigpending为指定的被阻塞信号设置队列
sigsuspend挂起进程等待特定信号
signal参见signal
kill向进程或进程组发信号
*sigblock向被阻塞信号掩码中添加信号,已被sigprocmask代替
*siggetmask取得现有阻塞信号掩码,已被sigprocmask代替
*sigsetmask用给定信号掩码替换现有阻塞信号掩码,已被sigprocmask代替
*sigmask将给定的信号转化为掩码,已被sigprocmask代替
*sigpause作用同sigsuspend,已被sigsuspend代替
sigvec为兼容BSD而设的信号处理函数,作用类似sigaction
ssetmaskANSI C的信号处理函数,作用类似sigaction
<script type="text/javascript"> <!-- D(["mb","</tr></tbody></table><br><br>/r/n<div>2、消息</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">msgctl</td>/r/n <td>消息控制操作</td></tr>/r/n <tr>/r/n <td>msgget</td>/r/n <td>获取消息队列</td></tr>/r/n <tr>/r/n <td>msgsnd</td>/r/n <td>发消息</td></tr>/r/n <tr>/r/n <td>msgrcv</td>/r/n <td>取消息</td></tr></tbody></table><br><br>/r/n<div>3、管道</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">pipe</td>/r/n <td>创建管道</td></tr></tbody></table><br><br>/r/n<div>4、信号量</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">semctl</td>/r/n <td>信号量控制</td></tr>/r/n <tr>/r/n <td>semget</td>/r/n <td>获取一组信号量</td></tr>/r/n <tr>/r/n <td>semop</td>/r/n <td>信号量操作</td></tr></tbody></table><br><br>/r/n<div>5、共享内存</div>/r/n<table cellspacing=/"0/" cellpadding=/"5/" width=/"100%/" bgcolor=/"#cccccc/" border=/"1/">/r/n <tbody>/r/n <tr>/r/n <td width=/"30/">shmctl</td>/r/n <td>控制共享内存</td></tr>/r/n <tr>/r/n <td>shmget</td>/r/n <td>获取共享内存</td></tr>/r/n <tr>/r/n <td>shmat</td>/r/n <td>连接共享内存</td></tr>/r/n <tr>/r/n <td>shmdt</td>/r/n <td>拆卸共享内存</td></tr></tbody></table></div>/r/n<div>发表于 2004年07月30日 1:19 AM </div><br>/r/n<div></div>/r/n<div>- 作者: <a title=/"耿文韬/">耿文韬</a> 2004年08月22日, 星期日 11:52 <a>加入博采</a> /r/n</div></p></p></div>/r/n<div><a name=/"103f9f3699778b34_trackback/">/r/n<h3>Trackback</h3></a/>/r/n<div>你可以使用这个链接引用该篇文章 /r/n<a href=/"http://publishblog.blogchina.com/blog/tb.b?diaryID=63689/" target=/"_blank/" οnclick=/"return top.js.OpenExtLink(window,event,this)/">http://publishblog.blogchina<WBR>.com/blog/tb.b?diaryID=63689</a> </div></div>/r/n<div><a name=/"103f9f3699778b34_comment/">/r/n<h3></h3></a> </div></div></font></div>/r/n",0] ); //--> </script>

2、消息
msgctl消息控制操作
msgget获取消息队列
msgsnd发消息
msgrcv取消息


3、管道
pipe创建管道


4、信号量
semctl信号量控制
semget获取一组信号量
semop信号量操作


5、共享内存
shmctl控制共享内存
shmget获取共享内存
shmat连接共享内存
shmdt拆卸共享内存
发表于 2004年07月30日 1:19 AM

- 作者: 耿文韬 2004年08月22日, 星期日 11:52 加入博采
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值