• 《UNIX环境高级编程》第一章总结


    第一章 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)进程时间。

     

  • 相关阅读:
    Cocos2dx开发(3)——Cocos2dx打包成APK,ANT环境搭建
    Cocos2dx开发(2)——Win8.1下Cocod2dx 3.2环境搭建
    Cocos2dx开发(1)——Win8.1下 NDK r10 环境搭建
    设计模式备忘录(1):适配器模式、依赖注入依赖倒置、空对象模式
    使用latencytop深度了解你的系统的延迟(转)
    操作系统基础
    计算机基础
    说明exit()函数作用的程序
    变量的引用类型和非引用类型的区别
    二进制转16进制JAVA代码
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2508294.html
Copyright © 2020-2023  润新知