#C语言#UNIX系统接口
(2017-09-27 14:29:50)分类: 计算机相关 |
UNIX操作系统通过一系列的系统调用提供服务,这些系统调用实际上是操作系统内部的函数,他们可以被用户程序调用。
1.文件描述符:在读或者写文件之前,必须将这个意图通知系统,该过程称之为打开文件。如果该文件可以被操作,操作系统会返回一个小的非负的整数,这个整数称之为文件描述符。对文件的输入输出都是通过文件描述符标识文件。
2低级I/O, read 和write:read(int fd,char
*buf,int n),write(int fd, char *buf , int
n),第一个参数为文件描述符,第二个为程序中存放和读写的数据的字符数组,第三个是要传输的字节数。他们的调用都会返回一个整形数,如果为0,表示到达文件末尾,-1表示某种错误,其他数值为读写的字节数。
3.open,creat,close,unlink:open(char
*name,int flags, int
perms);第一个是文件名的字符串,第二个是打开方式,只读,只写,读写,第三个暂时都是0.create(char *name,int
perms);创建文件,第一个参数名字,第二个为0;第二个参数类似于chmod 777,权限管理字段。close(int fd)
,用来断开文件描述符和已打开文件之间的连接,并释放文件描述符,以供其他文件使用。UNlink(char *name)
将name从文件系统中删除.
4.随机访问-lseek:long lseek(int fd,long
offset,int origin);在文件中任意移动位置而实际不读写任何数据。
5.实例:fopen
和getC函数实现:标准库中的文件是通过文件指针来描述的,而不是文件描述符。文件指针是一个指向包含文件各种信息的结构的指针,该结构包含下列内容:一个指向缓冲区的指针,通过它可以一次读入文件的一大块内容,一个记录缓冲区中剩余的字符数的计数器,一个指向缓冲区中下一个字符的指针,未加密描述符:描述读写的标志,描述错误状态的标志。
6.实例:目录列表:unix中使用ls打印文件信息。
7.存储分配程序:mallloc和free,malloc
并不是从编译时,就固定大小的数组中分配存储空间,而是在需要时向操作系统申请空间,所以malloc空间不一定是连续的。
前一篇:#C语言#输入与输出