博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《UNIX环境高级编程》第一章总结
阅读量:7063 次
发布时间:2019-06-28

本文共 1674 字,大约阅读时间需要 5 分钟。

第一章 UNIX 技术知识

unix的口令文件一般情况下是/etc/passwd文件

口令文件中的登录项一般有7个以冒号进行分割的字段组成:登录名,加密扣了,数字用户ID(224),数字组ID(20),注释字段,起始目录(比如:/home/rollen),以及shell程序(/bin/ksh)。

unix目录的起始目录叫做root,他的名字是一个字符/

stat和fstat函数返回一个包含所有文件属性的信息结构

不能出现在文件名中的字符有:斜线(/)和空操作符null

以斜线开头的路径名叫做绝对路径,否则是相对路径

每一个进程都有一个工作目录的,也叫做当前工作目录,进程调用chdir可以改变当前的工作目录

登陆的时候,工作目录设置为起始目录,也就是(home/rollen)之类的目录,这个目录可以在/etc/passwd文件中获得。

文件描述符是一个小的非负整数,内核使用它来标识一个特定进程正在访问的文件。当内核打开一个现存的文件或者创建一个新的文件的时候,他就会返回一个文件描述符,当我们读取,写入文件的时候就可以使用他。

每当我们运行一个新的程序的时候,所有的shell都会打开标准输入,标准输出,标准错误输这三个文件描述符,默认都是连接到终端。

函数open,read,write,lseek以及close都提供了不适用缓冲的I/O,这些函数都是用文件描述符工作。

程序是存放在磁盘上的可执行文件,使用6个exec函数中的一个可以由内核将程序读入存储器,并将其执行。

每一个unix进程都有一个唯一的进程ID,这个数字是一个非负整数。

有3个函数主要用于进程控制,fork,exec(exec有6中变体),waitpid。

以_t结尾的数据类型被称为原始数据类型,一般定义在<sys/types.h>文件中、他们一般使用c typedef说明加以定义。

当unix函数出错的时候,一般需要返回一个负值,而且整数型变量errno通常设置为具有特定信息的一个值。但是也有例外,比如一些函数并不是返回负值,而是使用其他的约定,比如返回null等。

对于errno应该知道1)如果没有出错,那么他的值不会被一个例程清除。因此只需要在函数返回值出错的时候,才需要检查他的值。2)任何一个函数都不会把errno的值设置为0,在<erron.h>文件中定义的所有常数都不为0.

口令文件登录项中的user ID是一个数值,他用来想系统标识不同的用户,系统管理员在确定一个用户的登录名的同时,也需要确定他的user ID。用户不能更改自己的user ID,每个用户都有一个user id。

user id为0的用户是超级用户root。在口令文件中通常有一个登录项的登录名为root。

组ID也是一个数值,他是由系统管理员在确定用户的登录名的时候分配的。一般在unix下,组被用来将不同的用户集成到一个部门下面,这种机制可以容许组中的不同成员之间可以共享一些资源,组文件(通常是/etc/group)将组名映射为数字组ID.

系统中每个文件的目录项都包含这个文件的所有者的user id和group id。在目录项中存放这2个值只需要4个字节(假设以双字节整形存放),但是如果使用8字节的登录名和8字节的组名的话,需要占用更多的存储空间,但是对于用户来说,使用名字作为登录名比使用数字要方便的许多,所以在口令文件中包含了登录名和用户id之间的映射关系。而组文件则包含了组名和组id之间的映射关系。

信号是通知进程已经发生某种条件的技术,进程如何处理信号有3中形式:

1)忽略信号2)按照系统默认方式进行处理3)提供一个信号发生的时候调用的函数

很多条件都会产生信号,有2中键盘方式:中断键(一般是delete或者Ctrl+c)和退出键(通常是Ctrl+\),他们被用于中断当前的进程。另外一种产生信号的方式是使用kill函数,当向一个进程发送信号的时候,我们必须是这个进程的所有者。

unix系统一直使用两种不同的时间值,1)日历时间2)进程时间。

 

转载地址:http://agnll.baihongyu.com/

你可能感兴趣的文章
前端之Sass/Scss实战笔记
查看>>
京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
查看>>
选择阿里云数据库HBase版十大理由
查看>>
多进程写入文件
查看>>
【运维趟坑回忆录 开篇】初入初创, 一脸懵
查看>>
你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
查看>>
Prometheus VS InfluxDB
查看>>
《码出高效》学习笔记与书中错误记录
查看>>
东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
查看>>
翻译 | The Principles of OOD 面向对象设计原则
查看>>
个推基于Consul的配置管理
查看>>
zabbix安装
查看>>
阿里云RDS PostgreSQL GPU加速规格(支持GIS时空加速)发布
查看>>
Netflix Media Database - 架构设计和实现
查看>>
云HBase Spark分析引擎对接云数据库POLARDB
查看>>
揭秘 DockerCon 重量级演讲嘉宾(六)
查看>>
性能优化技巧 - 集群维表
查看>>
python 静态文件以及一个项目框架
查看>>
组复制官方翻译七、Requirements and Limitations
查看>>
2019年4月上旬值得一读的10本技术书籍(Python、大数据、深度学习等)!
查看>>