linux常用系统调用函数

注:其中有一些函数的作用完全相同,只是参数不同。(可能很多熟悉C++朋友马上就能联想起函数重载,但是别忘了Linux核心是用C语言写的,所以只能取成不同的函数名)。还有一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数我会在前面标上“*”号以示区别。

一.进程控制

fork
 
创建一个新进程

 

clone
 
按指定条件创建子进程

 

execve
 
运行可执行文件

 

exit
 
中止进程

 

_exit
 
立即中止当前进程

 

getdtablesize
 
进程所能打开的最大文件数

 

getpgid
 
获取指定进程组标识号

 

setpgid
 
设置指定进程组标志号

 

getpgrp
 
获取当前进程组标识号

 

setpgrp
 
设置当前进程组标志号

 

getpid
 
获取进程标识号

 

getppid
 
获取父进程标识号

 

getpriority
 
获取调度优先级

 

setpriority
 
设置调度优先级

 

modify_ldt
 
读写进程的本地描述表

 

nanosleep
 
使进程睡眠指定的时间

 

nice
 
改变分时进程的优先级

 

pause
 
挂起进程,等待信号

 

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
 
对文件随机写

 

lseek
 
移动文件指针

 

_llseek
 
在64位地址空间里移动文件指针

 

dup
 
复制已打开的文件描述字

 

dup2
 
按指定条件复制文件描述字

 

flock
 
文件加/解锁

 

poll
 
I/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
 
读符号链接的值

 

mount
 
安装文件系统

 

umount
 
卸下文件系统

 

ustat
 
取文件系统信息

 

utime
 
改变文件的访问修改时间

 

utimes
 
参见utime

 

quotactl
 
控制磁盘配额


 

三.系统控制

ioctl
 
I/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系统的名称、版本和主机等信息

 

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
 
设置主机名称



 

六.socket控制

socketcall
 
socket系统调用

 

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
 
设置有效用户标识号

 

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

 

ssetmask
 
ANSI C的信号处理函数,作用类似sigaction


 

2.消息

msgctl
 
消息控制操作

 

msgget
 
获取消息队列

 

msgsnd
 
发消息

 

msgrcv
 
取消息


 

3.管道

pipe
 
创建管道


 

4.信号量

semctl
 
信号量控制

 

semget
 
获取一组信号量

 

semop
 
信号量操作


 

5.共享内存

shmctl
 
控制共享内存

 

shmget
 
获取共享内存

 

shmat
 
连接共享内存

 

shmdt
 
拆卸共享内存


 转载自:http://www.cnblogs.com/luxf/archive/2010/07/01/1769303.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值