1 UNIX基础

1 登录名

    系统在其口令文件 /etc/passwd文件中查看登录名。口令文件中的登录项由冒号分割依次是:登录名、加密口令、数字用户ID(205)、数字组ID(105)、注释字段、起始目录(/home/sar)、以及shell程序(/bin/ksh)。

    sar:x:205:105:Stephen:/home/sar:/bin/ksh

2 文件系统

    UNIX 文件系统是目录和文件的一种层次结构,起始是根目录root目录(名称是一个字符 “/”)

3 文件名

    斜线(/)和空格不能出现在文件名中,斜线用来分割路径,空格用来种植一个路径名

    创建目录时,自动创建两个文件名.(指向当前目录)和..(指向上一层目录)

4 输入和出输出

    文件描述符通常是一个小的非负整数

    运行一个新程序的时候会打开三个文件描述符: 标准输入、标准输出、标准错误(standard input output error)。

5 不带缓冲的I/O    

    函数open、read、write、lseek、close 提供不带缓冲的IO、这些文件都使用文件描述符

6 程序

    程序是存储在磁盘上某目录下下的可执行文件

7 进程和进程ID

    进程是程序的执行实例

    UNIX系统为了确保每个进程都有一个唯一的数字标识,给每个进程分配一个长整型的ID,使用getpid()可以获取

8 线程和线程ID

    线程是系统分配资源的最小单位,一个进程内的所有线程共享同一个地址空间、文件描述符、栈以及进程的相关属性。

    与进程ID相同线程也有唯一标识,线程ID

9 出错处理

    当UNIX系统出错时,通常会返回一个负值,通常会返回一个负值,具有特定的意义。

    文件<errno.h>中定义了errno以及可以赋予它的各种常量,常量以字符E开头

    POSIX和ISO将errno定义为一个符号,它扩展称为一个可以修改的整型左值。它可以是一个包含出错编号的整数。也可以是一个返回出错编号指针的函数。

    支持线程的环境中,多线程共享进程地址空间,每个线程都有自己局部的errno,例如Linux支持多线程存取errno,将其定义为:

    extern int *_errno_location(void);

    #define errno (*_errno_location())

    对于errno 的两条使用规则:

        1 没有出错,其值不会被例程清除。因此仅在函数的返回值指明出错时检验其值

        2 任何函数都不会将errno设置为0,而且在<error.h>定义的所有常量都不为0

    C标准定义了两个函数,用于打印出错信息

    #include<string.h>

    char *strerror(int errnum) 

    #include <stdio.h>

    void perror(const jchar *msg)

10 错误恢复

    致命性错误只能打印或者输出日志后退出

    非致命性错误可以妥善处理,比如等待资源短缺

11 用户标识

    用户ID和组ID可以使用getuid() getgid()获取

12 信号

    用于通知进程

    1 忽略信号

    2 安系统默认方式处理

    3 提供一个函数,信号发生时调用该函数,

13 时间值

    日历时间:1970.1.1

    进程时间:CPU时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值