linux系统编程专题(四) 系统调用简介 && man手册

Linux内核系统调用是指所有的操作系统在其内核里都有一些内建的函数,这些函数可以用来完成一些系统级别的功能。

本文介绍系统调用在操作系统中的定位,以及借助如何方便查询系统调用函数。

一、系统调用简介

1.1、操作系统简介

  • 管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等
  • 给应用软件提供服务,作用于硬件之上,应用软件之下
image-20220127202810611

操作系统分层:内核 -> 系统调用 -> shell+公共函数库+… -> 应用程序

image-20220127202810611

1.2、系统编程简介

通过系统调用API,应用层可以实现与内核的交互。如果安卓实现不了的功能,就可以通过ndk+系统编程来实现更为复杂的功能

image-20220127202810611

系统编程的特点

  1. 无法跨平台

  2. 速度更慢,空间切换需要一定时间

用户空间到内核空间切换需要时间,空间即准备硬件信息的上下文,可以通过减少上下文切换来优化系统计算效率

  1. 提高系统的安全性

  2. 接口复杂,能力越大责任越大

二、man 手册

2.1、man手册简介

man手册就是linux提供给用户查看linux语法的一本书,当用户遇到一些不懂的命令/函数时,不用刻意去记住命令/函数的用法,只需要记住怎么在man手册去查询即可。

手册分为以下部分(有印象即可):

  1. Executable programs or shell commands,普通的命令

  2. System calls (functions provided by the kernel),是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

  3. Library calls (functions within program libraries),库函数,如printf,fread

  4. Special files (usually found in /dev),特殊文件,也就是/dev下的各种设备文件

  5. File formats and conventions eg /etc/passwd,指文件的格式,比如passwd,就会说明这个文件中各个字段的含义

  6. Games,给游戏留的,由各个游戏自己定义

  7. Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7),附件还有一些变量,比如向environ这种全局变量在这里就有说明

  8. System administration commands (usually only for root),系统管理用的命令,这些命令只能由root使用,如ifconfig

2.2、安装 man page

输入以下命令查看是否安装man

输入man man查看是否安装

man man
image-20220127202810611

出现上面提示即说明安装成功,退出文档按q键。如果没有则使用以下命令安装

yum install man-pages

2.3、man使用

在shell 中输入 man+数字+命令/函数,即可以查到相关的命令和函数。若不加数字,那Linux man命令默认从数字较小的手册中寻找相关命令和函数。

例如:我们输入 man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输入“man ifconfig”它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。

image-20220127202810611

man 是按照手册的章节号的顺序进行搜索的,比如:man sleep,只会显示 sleep 命令的手册,如果想查看库函数sleep,就要输入:man 3 sleep

2.4、man手册查阅快捷键

如何在 man 中进行查阅

按键描述
空格键向后翻一屏
b向前翻一屏
回车键向后翻一行
k向前翻一行
ctrl + d向后翻半屏
ctrl + u向前翻半屏
G跳转到文件尾
g跳到文件首
q退出
/关键字从当前光标所在行开始,向文件尾部查找
?关键字从当前光标所在行开始,向文件首部查找
n向后查找
N向前查找
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流星雨在线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值