Linux常用系统调用

系统调用参数传递以及返回值

系统调用输入参数:
在C样式的函数调用中,输入参数被存放堆栈中,但是系统调用与函数调用不同,需要的参数被存放在寄存器中。

系统调用参数顺序:

  • EAX:系统调用值,也做系统调用返回值
  • EBX:第1个参数
  • ECX:第2个参数
  • EDX:第3个参数
  • ESI:第4个参数
  • EDI:第5个参数

超过6个输入参数的系统调用:
EBX寄存器用于保存指向输入参数的内存位置的指针,输入参数按照连续的顺序存储

简单系统调用返回值:
EAX寄存器保存系统调用返回值

复杂的系统调用返回值:
必须在一个内存位置创建数据结构,并把该结构的地址以系统参数传递给系统调用。

内存访问内核系统调用

系统调用描述
brk改变数据段长度
mlock禁止对内存部分进行分页
mlockall禁止对调用进程进行分页
mmap把文件或者设备映射到内存中
mprotect控制对内存区域的许可访问
mremap重新映射虚拟内存地址
msync同步文件和内存映射
munlock允许对内存部分进行分页
munlockall允许对调用进程进行分页
munmap取消文件或者设备在内存中的映射

设备访问内核系统调用

系统调用描述
access检查设备的权限
chmod改变设备的权限
shown改变设备的所有关系
close关闭设备文件描述符
dup复制设备文件描述符
fcntl操作文件描述符
fstat获得设备的状态
ioctl控制设备的参数
link把新的名称分配给文件描述符
lseek重新定位读取/写入文件偏移量
mknod为设备创建新的文件描述符
open为设备或者文件打开/创建文件描述符
read读取设备文件描述符
write写入设备文件描述符

文件系统系统调用

系统调用描述
chdir改变工作目录
chroot改变根目录
flock在打开的文件上应用或者删除建议锁
statfs获得文件系统的统计数据
getcwd获得当前工作目录
mkdir创建目录
rmdir删除目录
symlink生成文件的新名称
umask设置文件创建掩码
mount挂载文件系统
unmount卸载文件系统
swapon开始内存和文件系统的交换
swapoff停止内存和文件系统的交换

进程系统调用

系统调用描述
acct打开或者关闭进程计数
capget获得进程功能
capset设置进程功能
clone创建子进程
execve执行程序
exit终止当前进程
fork创建子进程
getgid获得组标识
getpgrp / setpgrp获得/设置进程组
getppid获取进程标识
getpriority获得程序调度优先权
getuid获取用户标识
kill发送信号
nice改变进程优先级
vfork创建子进程并且阻塞父进程
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值