Linux系统调用列表

来源:互联网 发布:公安部已备案域名 编辑:程序博客网 时间:2024/05/29 19:42

一、进程控制:

函数名 描述 文件 fork 创建一个新进程 kernel/fork.c clone 按指定条件创建子进程 kernel/fork.c execve 运行可执行文件 fs/exec.c exit 中止进程 kernel/exit.c _exit 立即中止当前进程 getdtablesize 进程所能打开的最大文件数 kernel/sys.c getpgid 获取指定进程组标识号 kernel/sys.c setpgid 设置指定进程组标志号 kernel/sys.c getpgrp 获取当前进程组标识号 kernel/sys.c setpgrp 设置当前进程组标志号 kernel/sys.c getpid 获取进程标识号 kernel/sys.c getppid 获取父进程标识号 kernel/sys.c getpriority 获取调度优先级 kernel/sys.c setpriority 设置调度优先级 kernel/sys.c modify_ldt 读写进程的本地描述表 arch/x86/um/ldt.c nanosleep 使进程睡眠指定的时间 kernel/hrtimer.c nice 改变分时进程的优先级 pause 挂起进程,等待信号 kernel/signal.c personality 设置进程运行域 kernel/exec_domain.c prctl 对进程进行特定操作 kernel/sys.c ptrace 进程跟踪 kernel/ptrace.c sched_get_priority_max 取得静态优先级的上限 kernel/sched/core.c sched_get_priority_min 取得静态优先级的下限 kernel/sched/core.c sched_getparam 取得进程的调度参数 kernel/sched/core.c sched_getscheduler 取得指定进程的调度策略 kernel/sched/core.c sched_rr_get_interval 取得按RR算法调度的实时进程的时间片长度 kernel/sched/core.c sched_setparam 设置进程的调度参数 kernel/sched/core.c sched_setscheduler 设置指定进程的调度策略和参数 kernel/sched/core.c sched_yield 进程主动让出处理器,并将自己等候调度队列队尾 kernel/sched/core.c vfork 创建一个子进程,以供执行新程序,常与execve等同时使用 kernel/fork.c wait 等待子进程终止 wait3 参见wait waitpid 等待指定子进程终止 wait4 参见waitpid kernel/exit.c capget 获取进程权限 kernel/capability.c capset 设置进程权限 kernel/capability.c getsid 获取会晤标识号 kernel/sys.c setsid 设置会晤标识号 kernel/sys.c

二、文件系统控制

函数名 描述 文件 fcntl 文件控制 fs/fcntl.c open 打开文件 fs/open.c creat 创建新文件 fs/open.c close 关闭文件描述字 fs/open.c read 读文件 fs/read_write.c write 写文件 fs/read_write.c readv 从文件读入数据到缓冲数组中 fs/read_write.c writev 将缓冲数组里的数据写入文件 fs/read_write.c pread 对文件随机读 fs/read_write.c pwrite 对文件随机写 fs/read_write.c lseek 移动文件指针 fs/read_write.c _llseek 在64位地址空间里移动文件指针 dup 复制已打开的文件描述字 fs/file.c dup2 按指定条件复制文件描述字 fs/file.c flock 文件加/解锁 fs/locks.c poll I/O多路转换 fs/select.c truncate 截断文件 fs/open.c ftruncate 参见truncate fs/open.c umask 设置文件权限掩码 kernel/sys.c fsync 把文件在内存中的部分写回磁盘 fs/sync.c access 确定文件的可存取性 fs/open.c chdir 改变当前工作目录 fs/open.c fchdir 参见chdir fs/open.c chmod 改变文件方式 fs/open.c fchmod 参见chmod fs/open.c chown 改变文件的属主或用户组 fs/open.c fchown 参见chown fs/open.c lchown 参见chown fs/open.c chroot 改变根目录 fs/open.c stat 取文件状态信息 fs/stat.c lstat 参见stat fs/stat.c fstat 参见stat fs/stat.c statfs 取文件系统信息 fs/statfs.c fstatfs 参见statfs fs/statfs.c readdir 读取目录项 getdents 读取目录项 fs/readdir.c mkdir 创建目录 fs/namei.c mknod 创建索引节点 fs/namei.c rmdir 删除目录 fs/namei.c rename 文件改名 fs/namei.c link 创建链接 fs/namei.c symlink 创建符号链接 fs/namei.c unlink 删除链接 fs/namei.c readlink 读符号链接的值 fs/stat.c mount 安装文件系统 fs/namespace.c umount 卸下文件系统 ustat 取文件系统信息 fs/statfs.c utime 改变文件的访问修改时间 fs/utimes.c utimes 参见utime fs/utimes.c quotactl 控制磁盘配额 fs/quota/quota.c

三、系统控制

函数名 描述 文件 ioctl I/O总控制函数 fs/ioctl.c _sysctl 读/写系统参数 kernel/sysctl_binary.c acct 启用或禁止进程记账 kernel/acct.c getrlimit 获取系统资源上限 kernel/sys.c setrlimit 设置系统资源上限 kernel/sys.c getrusage 获取系统资源使用情况 kernel/sys.c uselib 选择要使用的二进制函数库 fs/exec.c ioperm 设置端口I/O权限 arch/x86/kernel/ioport.c iopl 改变进程I/O权限级别 arch/x86/kernel/ioport.c outb 低级端口操作 reboot 重新启动 kernel/reboot.c swapon 打开交换文件和设备 mm/swapfile.c swapoff 关闭交换文件和设备 mm/swapfile.c bdflush 控制bdflush守护进程 sysfs 取核心支持的文件系统类型 fs/filesystems.c sysinfo 取得系统信息 kernel/sys.c adjtimex 调整系统时钟 kernel/time.c alarm 设置进程的闹钟 kernel/timer.c getitimer 获取计时器值 kernel/itimer.c setitimer 设置计时器值 kernel/itimer.c gettimeofday 取时间和时区 kernel/time.c settimeofday 设置时间和时区 kernel/time.c stime 设置系统日期和时间 time 取得系统时间 times 取进程运行时间 kernel/sys.c uname 获取当前UNIX系统的名称、版本和主机等信息 kernel/sys.c vhangup 挂起当前终端 fs/open.c nfsservctl 对NFS守护进程进行控制 vm86 进入模拟8086模式 create_module 创建可装载的模块项 delete_module 删除可装载的模块项 kernel/module.c init_module 初始化模块 kernel/module.c query_module 查询模块信息 *get_kernel_syms 取得核心符号,已被query_module代替

四、内存管理

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

五、网络管理

函数名 描述 文件 getdomainname 取域名 setdomainname 设置域名 kernel/sys.c gethostid 获取主机标识号 sethostid 设置主机标识号 gethostname 获取本主机名称 sethostname 设置主机名称 kernel/sys.c

六、socket控制

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

七、用户管理

函数名 描述 文件 getuid 获取用户标识号 kernel/sys.c setuid 设置用户标志号 kernel/sys.c getgid 获取组标识号 kernel/sys.c setgid 设置组标志号 kernel/sys.c getegid 获取有效组标识号 kernel/sys.c setegid 设置有效组标识号 kernel/sys.c geteuid 获取有效用户标识号 kernel/sys.c seteuid 设置有效用户标识号 kernel/sys.c setregid 分别设置真实和有效的的组标识号 kernel/sys.c setreuid 分别设置真实和有效的用户标识号 kernel/sys.c getresgid 分别获取真实的,有效的和保存过的组标识号 kernel/sys.c setresgid 分别设置真实的,有效的和保存过的组标识号 kernel/sys.c getresuid 分别获取真实的,有效的和保存过的用户标识号 kernel/sys.c setresuid 分别设置真实的,有效的和保存过的用户标识号 kernel/sys.c setfsgid 设置文件系统检查时使用的组标识号 kernel/sys.c setfsuid 设置文件系统检查时使用的用户标识号 kernel/sys.c getgroups 获取后补组标志清单 kernel/groups.c setgroups 设置后补组标志清单 kernel/groups.c

八、进程间通信

函数名 描述 文件 ipc 进程间通信总控制调用 信号 sigaction 设置对指定信号的处理方法 sigprocmask 根据参数对信号集中的信号执行阻塞/解除阻塞等操作 sigpending 为指定的被阻塞信号设置队列 sigsuspend 挂起进程等待特定信号 signal 参见signal kill 向进程或进程组发信号 kernel/signal.c *sigblock 向被阻塞信号掩码中添加信号,已被sigprocmask代替 *siggetmask 取得现有阻塞信号掩码,已被sigprocmask代替 *sigsetmask *sigmask 将给定的信号转化为掩码,已被sigprocmask代替 *sigpause 作用同sigsuspend,已被sigsuspend代替 sigvec 为兼容BSD而设的信号处理函数,作用类似sigaction ssetmask ANSI C的信号处理函数,作用类似sigaction 2、消息 msgctl 消息控制操作 ipc/msg.c msgget 获取消息队列 ipc/msg.c msgsnd 发消息 ipc/msg.c msgrcv 取消息 ipc/msg.c 3、管道 pipe 创建管道 fs/pipe.c 4、信号量 semctl 信号量控制 ipc/sem.c semget 获取一组信号量 ipc/sem.c semop 信号量操作 ipc/sem.c 5、共享内存 shmctl 控制共享内存 ipc/shm.c shmget 获取共享内存 ipc/shm.c shmat 连接共享内存 ipc/shm.c shmdt 拆卸共享内存 ipc/shm.c

转自
https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
http://blog.csdn.net/sinat_26227857/article/details/44244433

原创粉丝点击