• Chapter 1 Unix基础知识


    以下仅列出相对比较重要的内容

    1.文件和目录

    1).文件系统

        Unix文件系统是目录和文件组成的一种层次结构。目录是一个包含许多目录项的文件,而逻辑上,可以认为每个目录项都包含着文件名。文件属性是指文件类型(是普通文件还是目录)、文件的大小、文件的所有者、文件权限以及文件的修改时间等等。如获取相应信息可以用stat和fstat函数

    2).文件名

    3).路径名

        由斜线和文件名组成的序列构成路径名,以斜线开头的路径名称为绝对路径名,否则为相对路径名。注:文件根系统的名字(/)是个特殊的绝对路径,不含文件名

    4).工作目录

        每一个进程都有一个工作目录(又称当前工作目录),所有绝对路径名都从工作目录开始

    2.输入和输出

    1).文件描述符

    文件描述符通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件

    2).标准输入、标准输出和标准标准出错

    当运行一个新程序,所有shell都为其打开三个文件描述符标准输入、标准输出和标准标准出错

    3.程序与进程

    1).进程控制

    对于进程控制,一般由三个主要函数:fork,exec和waitpid(其中exec有六种变体)。

    2).线程ID和线程

    线程ID与进程ID有相同的作用,但线程ID只在他所属进程内起作用

    在一个进程内的所有线程共享同一地址空间、文件描述符、栈以及与进程相关的属性,因为各个线程会访问同一资源,所以要进行线程同步。

    4.出错处理

    当Unix出错时,常常返回一个负值,而且整型变量errorn通常被设置为含有附加信息的一个值,注:在多线程环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errorn以避免一个线程干扰另一个线程

    C标准有两个函数可以打印出errorn信息

    #include <string.h>
    
    char *strerror(int errnum);
    //返回指向错误信息字符串的指针
    #include <stdio.h>
    
    void perror(const char *msg);
    //在标准输出上产生一条错误信息

    5.用户标识

    1).用户ID 

    2).组ID

    3).附加组ID(一个用户可以属于多个组中)

    6.信号

      用来通知进程有情况发生的一种技术。进程收到信号后有三种选择1).忽略   2).默认处理方法   3).提供一个函数当信号发生时调用(信号捕捉)。

    7.时间值

    Unix有两种不同的时间值

    1).日历时间  用数据类型time_t ,记录着最近一次的修改时间

    2).进程时间  用数据类型clock_t,度量进程使用的中央处理机资源

    度量一个进程的时间,Unix使用三个进程时间值:

    1).时钟时间 (墙上时钟时间)    它是进程运行时间的总量,值与系统同时运行的进程数有关

    2).用户CPU时间    执行用户指令的时间

    3).系统CPU时间    该进程实行内核程序所经历的时间

    8.系统调用和库函数

      系统调用是在内核空间中运行。库函数封装了系统调用,运行在用户空间。

  • 相关阅读:
    <html>
    小贝_mysql 触发器使用
    windows能连网络,可是打不开网页,出现无法解析server的DNS
    POJ 3268 Bookshelf 2 动态规划法题解
    Artistic Style在windows下的使用(C/C++)
    ASP.NET CS文件中输出JavaScript脚本的3种方法以及区别
    跨浏览器的本地存储解决方案
    JavaScript Array 对象扩展方法
    JavaScript String 对象扩展方法
    jQuery开发技巧
  • 原文地址:https://www.cnblogs.com/biyeymyhjob/p/2618233.html
Copyright © 2020-2023  润新知