linux man指令问题

linux man指令问题,第1张

这句话是对的。

Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下:

1 - commands

2 - system calls

3 - library calls

4 - special files

5 - file formats and convertions

6 - games for linux

7 - macro packages and conventions

8 - system management commands

9 - 其他

解释一下,

1是普通的命令

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

3是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

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

7是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8是系统管理用的命令,这些命令只能由root使用,如ifconfig

想要指定section就直接在man的后面加上数字,比如 :

man 1 ls

man 3 printf

等等

对于像open,kill这种既有命令,又有系统调用的来说,man open则显示的是open(1),也就是从最前面的section开始,如果想查看open系统调用的话,就得man 2 open

使用Linux内核提供的系统调用。

使用这种方法最大的好处是可以直接和 *** 作系统的内核进行通讯,不需要链接诸如libc这样的函数库,也不需要使用ELF解释器,因而代码尺寸小且执行速度快。

Linux是一个运行在保护模式下的32位 *** 作系统,采用flatmemory模式,目前最常用到的是ELF格式的二进制代码。一个ELF格式的可执行程序通常划分为如下几个部分:.text、.data和.bss,其中.text是只读的代码区,.data是可读可写的数据区,而.bss则是可读可写且没有初始化的数据区。代码区和数据区在ELF中统称为section,根据实际需要你可以使用其它标准的section,也可以添加自定义section,但一个ELF可执行程序至少应该有一个.text部分。

由汇编器产生的目标代码是不能直接在计算机上运行的,它必须经过链接器的处理才能生成可执行代码。链接器通常用来将多个目标代码连接成一个可执行代码,这样可以先将整个程序分成几个模块来单独开发,然后才将它们组合(链接)成一个应用程序。Linux使用ld作为标准的链接程序,它同样也包含在binutils软件包中。汇编程序在成功通过GAS或NASM的编译并生成目标代码后,就可以使用ld将其链接成可执行程序了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11287648.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存