加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

#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空间不一定是连续的。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有