《Linux系统接口》PPT课件

《Linux系统接口》PPT课件

ID:46949678

大小:3.13 MB

页数:39页

时间:2019-12-01

《Linux系统接口》PPT课件_第1页
《Linux系统接口》PPT课件_第2页
《Linux系统接口》PPT课件_第3页
《Linux系统接口》PPT课件_第4页
《Linux系统接口》PPT课件_第5页
资源描述:

《《Linux系统接口》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、上章回顾Linux的文件模型,进程模型,与GNU程序更好的原因参数和选项,描述了命令行参数的解析技术系统的环境变量添加,删除,引用的方法如何创建共享库,使用共享库,以及共享库的工作原理Linux系统接口第5章本章目标理解Linux中文件描述符的概念,以及一切皆是文件的思想。熟练运用Linux提供的文件IO操作函数通过实例了解标准C库是通过系统调用来实现的掌握Linux中可执行程序的地址空间,以及malloc库函数的一种简单实现。本章结构Linux系统接口Unix/Linux地址空间文件IOAPI理解文件描述符内存管理实例:fopen与getc的实现

2、隐含内存分配函数实例实例:存储分配程序其他常用API低级IO—read.writeOpen/close与creat/unlink随机访问--lseek实例:目录列表1-1理解Linux文件描述符“一切皆是文件”输入输出设备被看成文件输入输出通过读写文件完成读写文件之前做什么打开文件打开文件获得什么?Shell默认打开三个文件标准输入:0标准输出:1标准错误:2标准输入输出重定向你能确定输入从哪来?输出那里去?文件描述符1.系统打开文件成功时返回的小的非负整数2.用户程序通过文件描述符引用文件2-1低级IO—read,write#include

3、istd.h>ssize_tread(intfd,char*buf,size_tn);ssize_twrite(intfd,char*buf,size_tn);声明代表文件的文件描述符ssize_t与size_t的区别?前者是带符号的整型,后者是无符号整型2-1低级IO—read,write#include#includeintmain(){charbuf[BUFSIZ];intn;while((n=read(0,buf,BUFSIZ))>0)write(1,buf,n);return0;}标准输入标准输出这个

4、程序作用是什么BUFSIZ的大小因系统各异,定义于stdio.h中2-1低级IO—read,write#include#includeintgetchar(void){charc;return(read(0,&c,1)==1)?(unsignedchar)c:EOF;}!Getchar函数返回的并不是char类型,而是int类型在多数系统中的值为-1,所以决定了getchar的返回值是int2-1低级IO—read,write带有缓冲的版本#include#include

5、#undefgetcharintgetchar(void){staticcharbuf[BUFSIZ];staticchar*bufp=buf;staticintn=0;if(n==0){/*缓冲区为空*/n=read(0,buf,sizeofbuf);bufp=buf;}return(--n>=0)?(unsignedchar)*bufp++:EOF;}从标准输入一次读取sizeofbuf个字符至缓冲区从缓冲区中返回一个字符只有当缓冲区为空的时候,才从标准输入去读因为在中定义了getchar这个宏,在这里重定义,所以需要unde

6、f2-2open/close与creat/unlink声明#include#include#includeintopen(char*name,intflags);或intopen(char*name,intflags,mode_tmode);成功返回文件描述符(非负数),失败返回负数。O_RDONLYO_WRONLYO_RDWD….….指明文件的权限2-2open/close与creat/unlink声明#include#include#

7、includeintcreat(char*name,mode_tmode);成功返回文件描述符(非负数),失败返回负数。指明文件的权限open()函数的flag

8、O_CREAT也可以用创建新文件2-2open/close与creat/unlink简化的cp程序if((f1=open(argv[1],O_RDONLY,0))==-1)error("cp:can'topen%s",argv[1]);if((f2=creat(argv[2],O_RDWR))==-1)error("cp:can'tcreate%s,mode%03o

9、",argv[2],O_RDWR);while((n=read(f1,buf,BUFSIZ))>0)if(write(f2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。