登录
/etc/passwd
root:x:0:0:root;/:/bin/sh
登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序
输入和输出
#include <unistd.h>
STDIN_FILENO //0
STDOUT_FILENO //1
出错处理
#include <string.h>
char *strerror(int errnum);
#include <stdio.h>
void perror(const char *msg);
出错恢复
<errno.h>中定义的各种出错分为两类:致命性和非致命性
- 致命性错误,无法执行恢复动作,最多能做的是在用户屏幕上打印一条出错消息后者将一条出错消息写入日志文件中,然后退出。
- 对于非致命性的出错,有时可以较妥善地进行处理。大多数非致命性出错是暂时的(如资源短缺),当系统中的活动较少时,这种出错很可能不会发生
- 与资源相关的非致命性出错包括:EAGAIN、ENFILE、ENOBUFS、ENOLCK、ENOSPC、EWOULDBLOCK,有时ENOMEM也是非致命性出错。当EBUSY指明共享资源正在使用时,也可将它作为非致命性出错处理。当EINTR中断一个慢速系统调用时,可将它作为非致命性出错处理
- 对于资源相关的非致命性出错的典型恢复操作是延时一段时间,然后重试。这种技术可应用于其它情况。例如,假设出错表明一个网络连接不再起作用,那么应用程序可以采用这种方法,在短时间延迟后,尝试重建该连接。
组ID
/etc/group
时间值
历史上,UNIX系统使用过两种不同的时间值
- 日历时间。该值是自协调世界时(Coordinated Universal Time, UTC)1970年1月1日00:00:00这个特定时间以来所经过的秒数累加值(早期的手册称UTC为格林尼治时间标准时间)。这些时间值可用于记录文件最近一次的修改时间。系统基本数据类型time_t用于保存这种时间值
- 进程时间。也被称为CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴答计算,每秒钟取50、60或100个时间滴答。系统基本数据类型clock_t保存这种时间值
UNIX系统为一个进程维护了3个进程时间值:
- 时钟时间
- 用户CPU时间
- 系统CPU时间
- 时钟时间又称为墙上时钟时间(wall clock time),它是进程运行的时间总量,其值与系统中同时运行的进程数有关
- 用户CPU时间是执行用户指令所用的时间量
- 系统CPU时间是为该进程执行内核程序所经历的时间
time命令可获取任一进程的时钟时间、用户时间和系统时间