20135210——信息安全系统设计基础第十周学习总结
Who命令
who 读取想要的信息到存储器中,再用标准输出函数打印到屏幕上,关闭文件。
查看登录前的用户 -who am i;
列出登录的用户 -who或-w。
Unix系统中的错误处理
-
unix风格:例如fork函数和外套函数,返回值既包括错误代码,又包括有用的结果。
if((pid = wait(NULL))<0) { fprintf(stderr,"wait error:%s\n",strerror(errno));//将errno设置为指向错误原因的代码 exit(0); }
- Posix风格:例如pthread,函数只返回调用成功(0)或者失败(非0),任何有用的信息都返回在通过调用引用进来的参数中。
- DNS风格:gethostbyname和gethostbyaddr检索NDS(域名系统)库;它们在错误的时候会返回NULL,并设置全局变量h_errno。
-
错误处理包装函数
-
unix风格
pid_t Wait(int *status) { pid_t pid; if(pid = wait(status)<0) unix_error("wait error"); return pid; }
-
Posix风格
void Pthread_detach(pthread_t tid) { int rc; if(rc=pthread_detach(tid) != 0) posix_error(rc,"Pthread_detach error"); }
-
DNS风格
struct hostent *Gethostbyname(const char *name) { struct hostname *p; if((p = gethostbyname(name)) == NULL) dns_error("Gethostbyname error"); return p; }
-
错误处理包装函数
- Unix风格:成功时返回void,返回错误时包装函数打印一条信息,然后退出。
- Posix风格:成功时返回void,错误返回码中不会包含有用的结果。
- DNS风格:失败时返回Null指针,并且设置全局变量h_errno。
共享文件
- 描述符表:每个进程一张独立的表
- 文件表:所有进程共享,存放文件位置,引用计数和指向v-node表的指针
- v-node 表:所有进程共享,存放文件信息
标准I/O
标准I/O库将一个打开的文件模型化为一个流,一个流就是一个指向FILE类型的结构的指针。
- 总述:这个库提供了unixI/O较高级别的替代。
- 类型:
- 打开和关闭文件的函数(fopen和fclose);
- 读和写字节的函数(fread和fwrite);
- 读和写字符串的函数(fgets和fputs)
- 流的应用: 一个流就是指向一个FILE类型的结构的指针(比如,每有一个ASNI C文件打开,都会同时打开STDIN,STDOUT,STDERR三个流)。
- 含义:流是对文件描述符和流缓冲区的抽象。(流缓冲区的目的和RIO类似,就是减少开销较高的unix系统调用的数量)
ls命令
ls -l 以长格式的形式查看当前目录下所有可见文件的详细属性
ls -a 列出的内容包含以“.”开头的文件
ls -lu 最后访问时间
ls -s 以块为单位的文件大小
ls -t 按时间排序
ls -F 显示文件类型