1.
不带缓冲的I/O函数:read,write,……,需定义一个buffersize
标准I/O(带缓冲):printf,fgets,……,不用考虑buffersize
2.
getpid()获得当前进程的ID,三个用于进程控制的主要函数:fork,exec(有六种变体),waitpid
3.
头文件包含许多unix系统服务的函数原型,如read,write,getpid...
以_t结尾的数据类型被称为原始系统数据类型(或基本系统数据类型),定义在头文件,它们通常以C typedef加以定义。原始系统数据类型实现了在不同系统中移植时数据类型的转变。
定义了变量errno以及可以赋与它的各种常数。当unix函数出错时,通常返回一个负值(如-1),而且变量errno被赋值为具有特定信息的值。C标准定义了两个函数帮助打印出错信息:#include char *strerror(int errnum); #include void perror(char *msg).
4.
getgid(),getuid()分别返回组ID和用户ID,用户ID为O的是用户是超级用户,ID不能更改。
5.
信号是通知进程已发生某种事件的一种技术。对信号的处理有三种:A、忽略,B、系统默认方式 C、调用处理函数。产生信号的方式有:A、键盘方式(常见的有中断键CTRL+C和退出键CTRL+\)B、调用kill函数。
进程捕获信号可通过调用signal(),原型定义在头文件.
6.
Unix时间分为日历时间和进程时间。日历时间的值是从1970年1月1日0:0:0以来国际标准时间到现在的秒数累计值。进程时间也称为CPU时间,以时钟滴答计算,多年来以每秒50,60或100个滴答,系统基本数据类型clock_t保存这个值。
7.
系统调用:所有操作系统都提供多种服务的入口点,由程序向内核请求服务,这些入口点就叫做系统调用。
8.
ANSI C标准满足了C程序的可移植性,使其能在不同的操作系统中适用,不只是UNIX。此标准不仅定义了C程序的语义和语法,还定义了其标准库。
9.
在大多数UNIX系统中文件的I/O函数有5个:open,read,write,lseek.close.当读、写一个文件时,用open或creat返回文件描述符来标识文件,并将其作为参数传递给read、write.
10.
UNIX允许不同进程共享打开的文件。但在多个进程同写一个文件时,可能产生预期不到的结果,为了避免这种情况发生,提供原子操作。也可以使用函数dup或dup2复制已打开的文件描述符,再进行操作。
11.
fcntl函数提供五个功能:
复制一个现存的文件描述符(cmd = FDUPFD);
获得/设置文件描述符标记(cmd = F_GETFD/F_SETFD);
获得/设置文件状态标志(cmd = F_GETFL/F_SETFL);只读、读写等状态
获得/设置异步I/O所有权(cmd = F_GETOWN/F_SETOWN);
获得/设置记录锁(cmd = F_GETLC/F_SETLC/F_SETLCW);
12.
文件类型有:普通文件、目录、字符特殊文件、块特殊文件、FIFO(管道文件,用于进程间通信)、套接口。
用于查看文件信息的函数有:stat,fstat,lstat.函数的原型定义在sys/stat.h
实际用户ID、实际用户组标识文件是谁,有效用户ID、有效用户组ID标识文件的存取许可权限。一般打开一个文件,用户ID就是有效用户ID,用户组就是有效用户组ID,但也是以设置有效用户ID、组。函数access用于文件按实际用户ID和实际用户组进行权限许可测试。函数chmod、fchmod可以修改当前文件的权限许可,原型定义在sys/stat.h。函数chown、fchown、lchown可以修改文件的用户ID和组ID。
有时要在文件尾端处截去数据以缩短文件,可调用用函数truncate、ftruncate,原型在sys/stat.h.
阅读(784) | 评论(0) | 转发(0) |