文件IO编程.ppt

上传人:asd****56 文档编号:87677260 上传时间:2023-04-16 格式:PPT 页数:29 大小:1.02MB
返回 下载 相关 举报
文件IO编程.ppt_第1页
第1页 / 共29页
文件IO编程.ppt_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《文件IO编程.ppt》由会员分享,可在线阅读,更多相关《文件IO编程.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1教师教师:廖小飞廖小飞2023/4/8文件文件 I O I O 编程编程2主要内容主要内容2一.一.系统调用及系统调用及APIAPI二.二.文件及文件描述符文件及文件描述符三.三.底层文件底层文件I/OI/O操作操作l基本文件操作基本文件操作l文件锁文件锁四.四.标准标准I/OI/O编程编程 3系统调用及系统调用及API3l内核内核操作系统,控制硬件资源,提供程序运行环境操作系统,控制硬件资源,提供程序运行环境lShellShell运行其它应用程序运行其它应用程序 提供接口提供接口l系统调用系统调用内核接口内核接口4系统调用及系统调用及API4l系统调用系统调用用户程序通过这组用户程序通过这

2、组“特殊特殊”接口来获得操作系接口来获得操作系统内核提供的服务统内核提供的服务5系统调用及系统调用及API5l应用编程接口应用编程接口APIAPI通过软中断机制向内核提交请求,以获取内核通过软中断机制向内核提交请求,以获取内核服务的接口服务的接口遵循遵循POSIXPOSIX标准标准主要通过主要通过C C库实现库实现l系统命令系统命令可执行程序可执行程序内部引用应用编程接口(内部引用应用编程接口(APIAPI)来实现相应的)来实现相应的功能功能6系统调用及系统调用及API6syscall.csyscall.c7主要内容主要内容7一.一.系统调用及系统调用及APIAPI二.二.文件及文件描述符文件

3、及文件描述符三.三.底层文件底层文件I/OI/O操作操作l基本文件操作基本文件操作l文件锁文件锁四.四.标准标准I/OI/O编程编程 8文件及文件描述符文件及文件描述符8lLinuxLinux文件类型文件类型普通文件、目录文件、链接文件、设备文件普通文件、目录文件、链接文件、设备文件l文件权限文件权限l文件描述符文件描述符内核区分和引用特定的文件内核区分和引用特定的文件索引值:非负的整数索引值:非负的整数指向在内核中每个进程打开文件的记录表指向在内核中每个进程打开文件的记录表进程进程文件状态标志当前文件偏移量i节点指针文件表文件表fd标志文件指针9文件及文件描述符文件及文件描述符9l一个进程启

4、动时,都会打开一个进程启动时,都会打开3 3个文件:标准个文件:标准输入、标准输出和标准出错处理输入、标准输出和标准出错处理文件描述符为文件描述符为0 0、1 1和和2 2宏替换宏替换STDIN_FILENOSTDIN_FILENOSTDOUT_FILENOSTDOUT_FILENOSTDERR_FILENOSTDERR_FILENO10主要内容主要内容10一.一.系统调用及系统调用及APIAPI二.二.文件及文件描述符文件及文件描述符三.三.底层文件底层文件I/OI/O操作操作l基本文件操作基本文件操作l文件锁文件锁四.四.标准标准I/OI/O编程编程 11底层文件底层文件I/O操作操作11

5、l五个系统调用五个系统调用open,read,write,lseek,closeopen,read,write,lseek,close不带缓存,直接进行读写操作不带缓存,直接进行读写操作l函数说明函数说明open:open:指定文件属性及用户权限指定文件属性及用户权限read:read:从文件的当前指针位置开始从文件的当前指针位置开始write:write:写操作从文件的当前指针位置开始写操作从文件的当前指针位置开始lseek:lseek:将文件指针定位到相应的位置将文件指针定位到相应的位置,用在可定用在可定位位(可随机访问可随机访问)文件操作中文件操作中close:close:进程终止时,内

6、核自动关闭它打开的所进程终止时,内核自动关闭它打开的所有文件有文件12底层文件底层文件I/O操作操作:open12l打开或创建文件打开或创建文件lflag flag 参数可以通参数可以通过过“|”组合组合前前3 3个互斥个互斥lpermsperms可以用宏可以用宏定义,也可用定义,也可用 八八进制进制13底层文件底层文件I/O操作操作:read/write13echo_screen.cecho_screen.c14底层文件底层文件I/O操作操作:lseek/close14iocopy.ciocopy.c15主要内容主要内容15一.一.系统调用及系统调用及APIAPI二.二.文件及文件描述符文件

7、及文件描述符三.三.底层文件底层文件I/OI/O操作操作l基本文件操作基本文件操作l文件锁文件锁四.四.标准标准I/OI/O编程编程 16文件锁文件锁16l多个用户共同使用操作同一个文件多个用户共同使用操作同一个文件上锁避免竞争上锁避免竞争l文件锁文件锁建议性锁建议性锁/强制性锁强制性锁l两个系统调用两个系统调用lockf():lockf():对文件施加建议性锁对文件施加建议性锁fcntl():fcntl():不仅可加建议性锁,还可施加强制锁不仅可加建议性锁,还可施加强制锁还能对文件的某一部分上锁,也就是记录锁还能对文件的某一部分上锁,也就是记录锁l记录锁记录锁读取锁(共享锁)读取锁(共享锁)

8、/写入锁(排斥锁)写入锁(排斥锁)文件同一部分不能同时建立读取锁和写入锁文件同一部分不能同时建立读取锁和写入锁17底层文件底层文件I/O操作操作:fcntl1718底层文件底层文件I/O操作操作:fcntl18l加锁整个文件:加锁整个文件:l_start=0l_start=0l_whence=SEEK_SETl_whence=SEEK_SETl_len=0l_len=0struct flock short l_type;off_t l_start;short l_whence;off_t l_len;pid_t l_pid;lockset.clockset.cfilelock_write.cf

9、ilelock_write.cfilelock_read.cfilelock_read.c19主要内容主要内容19一.一.系统调用及系统调用及APIAPI二.二.文件及文件描述符文件及文件描述符三.三.底层文件底层文件I/OI/O操作操作l基本文件操作基本文件操作l文件锁文件锁四.四.标准标准I/OI/O编程编程 20标准标准I/O编程编程20l应尽量减少系统调用的次数,提高效率应尽量减少系统调用的次数,提高效率l标准标准I/OI/O提供提供3 3种类型的缓冲存储种类型的缓冲存储全缓冲阻塞全缓冲阻塞I/OI/O模型模型填满标准填满标准I/OI/O缓存后才进行实际缓存后才进行实际I/OI/O操作

10、操作行缓冲非阻塞模型行缓冲非阻塞模型在输入和输出中遇到行结束符时,标准在输入和输出中遇到行结束符时,标准I/OI/O库执行库执行I/OI/O操作操作不带缓冲不带缓冲相当于用系统调用相当于用系统调用write()write()函数将这些字符全写到被打函数将这些字符全写到被打开的文件上开的文件上stderrstderr不带缓冲不带缓冲21标准标准I/O编程编程21l基本操作基本操作打开文件打开文件fopenfopenfdopenfdopenfreopenfreopen22标准标准I/O编程编程22l基本操作基本操作关闭文件关闭文件fclosefclose将缓冲区内的数将缓冲区内的数据全部写入到文据

11、全部写入到文件中件中释放系统所提供释放系统所提供的文件资源的文件资源定位文件定位文件ftellftellfseekfseek23标准标准I/O编程编程23l基本操作基本操作读文件读文件freadfread写文件写文件freadfreadstd_copy.cstd_copy.c24标准标准I/O编程编程24l其它操作其它操作字符输入函数字符输入函数字符输出函数字符输出函数 行输入函数行输入函数行输出函数行输出函数格式化输入函数格式化输入函数格式化输出函数格式化输出函数25标准标准I/O编程编程25l其它操作其它操作字符输入函数字符输入函数字符输出函数字符输出函数getc/putcgetc/put

12、c实现实现为宏,为宏,fgetcfgetc /fputcfputc不能实现不能实现为宏为宏putchar(c)=putchar(c)=putc(c,stdout)putc(c,stdout)char_echo_screen.cchar_echo_screen.c26标准标准I/O编程编程26l其它操作其它操作行输入函数行输入函数行输出函数行输出函数line_echo_screen.cline_echo_screen.c27标准标准I/O编程编程27l其它操作其它操作格式化输入格式化输入函数函数格式化输出格式化输出函数函数28总结总结28一.一.系统调用及系统调用及APIAPI二.二.文件及文件描述符文件及文件描述符三.三.底层文件底层文件I/OI/O操作操作l基本文件操作基本文件操作l文件锁文件锁四.四.标准标准I/OI/O编程编程 29Have a Good time!Have a Good time!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁