1linux系统调用和文件IO(ppt).pdf
《1linux系统调用和文件IO(ppt).pdf》由会员分享,可在线阅读,更多相关《1linux系统调用和文件IO(ppt).pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文件操作主讲人主讲人主讲人主讲人:李奎李奎李奎李奎本章学习目标本章学习目标本章学习目标本章学习目标 文件操作文件操作文件操作文件操作在在在在linuxlinuxlinuxlinux系统编程中系统编程中系统编程中系统编程中,通过通过通过通过linuxlinuxlinuxlinux系统调用系统调用系统调用系统调用操作文件操作文件操作文件操作文件,完成完成完成完成本章学习应该能够通过本章学习应该能够通过本章学习应该能够通过本章学习应该能够通过linuxlinuxlinuxlinux系统调用系统调用系统调用系统调用操作文件以下部分操作文件以下部分操作文件以下部分操作文件以下部分:创建文件创建文件创建文
2、件创建文件 读和写文件读和写文件读和写文件读和写文件 更新文件内容更新文件内容更新文件内容更新文件内容文件操作理论及原理介绍文件操作理论及原理介绍文件操作理论及原理介绍文件操作理论及原理介绍LinuxLinuxLinuxLinux系统调用系统调用系统调用系统调用所谓系统调用是操作系统提供给用户程序的一组所谓系统调用是操作系统提供给用户程序的一组所谓系统调用是操作系统提供给用户程序的一组所谓系统调用是操作系统提供给用户程序的一组特殊特殊特殊特殊接口接口接口接口,用户程序可以通过这组用户程序可以通过这组用户程序可以通过这组用户程序可以通过这组特殊特殊特殊特殊接口来获得操作系接口来获得操作系接口来获
3、得操作系接口来获得操作系统内核提供的特殊服务统内核提供的特殊服务统内核提供的特殊服务统内核提供的特殊服务在在在在linuxlinuxlinuxlinux中用户程序不能直接访问中用户程序不能直接访问中用户程序不能直接访问中用户程序不能直接访问内核提供的服务内核提供的服务内核提供的服务内核提供的服务,为了更好的保护内核空间为了更好的保护内核空间为了更好的保护内核空间为了更好的保护内核空间,将程序的运将程序的运将程序的运将程序的运行空间分为内核空间和用户空间行空间分为内核空间和用户空间行空间分为内核空间和用户空间行空间分为内核空间和用户空间,它们运行在不同的级别它们运行在不同的级别它们运行在不同的级
4、别它们运行在不同的级别上上上上,在逻辑上是相互隔离的在逻辑上是相互隔离的在逻辑上是相互隔离的在逻辑上是相互隔离的用户程序接口用户程序接口用户程序接口用户程序接口(APIAPIAPIAPI)在在在在linuxlinuxlinuxlinux中用户编程接口中用户编程接口中用户编程接口中用户编程接口(APIAPIAPIAPI)遵循了在遵循了在遵循了在遵循了在UNIXUNIXUNIXUNIX中最流行的中最流行的中最流行的中最流行的应用编程界面标准应用编程界面标准应用编程界面标准应用编程界面标准POSIXPOSIXPOSIXPOSIX标准标准标准标准这些系统调用编程接口主这些系统调用编程接口主这些系统调用
5、编程接口主这些系统调用编程接口主要通过要通过要通过要通过C C C C库库库库(libc.solibc.solibc.solibc.so)实现的实现的实现的实现的系统调用系统调用系统调用系统调用、APIAPIAPIAPI与系统命令之间的关系与系统命令之间的关系与系统命令之间的关系与系统命令之间的关系文件文件文件文件I/OI/OI/OI/O函数函数函数函数可用的文件可用的文件可用的文件可用的文件I/OI/OI/OI/O函数函数函数函数打开文件打开文件打开文件打开文件读文件读文件读文件读文件写文件等等写文件等等写文件等等写文件等等大多数大多数大多数大多数linuxlinuxlinuxlinux文件
6、文件文件文件I/OI/OI/OI/O只需用到只需用到只需用到只需用到5 5 5 5个函数个函数个函数个函数:openopenopenopenreadreadreadreadwritewritewritewritelseek lseek lseek lseek 以及以及以及以及closecloseclosecloseopenopenopenopen函数函数函数函数#include#include#include#include#include#include#include#include#include#include#include#include int open(const char*p
7、athname,int oflag,int open(const char*pathname,int oflag,int open(const char*pathname,int oflag,int open(const char*pathname,int oflag,“/*,/*,/*,/*,mode_t mode*/);mode_t mode*/);mode_t mode*/);mode_t mode*/);返回返回返回返回:若成功为文件描述符若成功为文件描述符若成功为文件描述符若成功为文件描述符,若出错为若出错为若出错为若出错为-1 1 1 1文件描述符文件描述符文件描述符文件描述符对于
8、内核而言对于内核而言对于内核而言对于内核而言,所有打开文件都由文件描述符引用所有打开文件都由文件描述符引用所有打开文件都由文件描述符引用所有打开文件都由文件描述符引用文件文件文件文件描述符是一个非负整数描述符是一个非负整数描述符是一个非负整数描述符是一个非负整数当打开一个现存文件或创建一个当打开一个现存文件或创建一个当打开一个现存文件或创建一个当打开一个现存文件或创建一个新文件时新文件时新文件时新文件时,内核向进程返回一个文件描述符内核向进程返回一个文件描述符内核向进程返回一个文件描述符内核向进程返回一个文件描述符当读当读当读当读写一写一写一写一个文件时个文件时个文件时个文件时,用用用用o p
9、 e no p e no p e no p e n返回的文件描述符标识该文件返回的文件描述符标识该文件返回的文件描述符标识该文件返回的文件描述符标识该文件,将其将其将其将其作为参数传送给作为参数传送给作为参数传送给作为参数传送给r e a dr e a dr e a dr e a d或或或或w r i t ew r i t ew r i t ew r i t e在在在在P O S I X.1P O S I X.1P O S I X.1P O S I X.1应用程序中应用程序中应用程序中应用程序中,整数整数整数整数0 0 0 01 1 1 12 2 2 2应被代换成符应被代换成符应被代换成符应被
10、代换成符号常数号常数号常数号常数:STDIN_FILENOSTDIN_FILENOSTDIN_FILENOSTDIN_FILENOSTDOUT_FILENOSTDOUT_FILENOSTDOUT_FILENOSTDOUT_FILENOSTDERR_FILENOSTDERR_FILENOSTDERR_FILENOSTDERR_FILENO这些常数都定义在头文件这些常数都定义在头文件这些常数都定义在头文件这些常数都定义在头文件 中中中中文件描述符的范围是文件描述符的范围是文件描述符的范围是文件描述符的范围是0 OPEN_MAX 0 OPEN_MAX 0 OPEN_MAX 0 OPEN_MAX 早期
11、的早期的早期的早期的UNIXUNIXUNIXUNIX版本版本版本版本采用的上限值是采用的上限值是采用的上限值是采用的上限值是1 9(1 9(1 9(1 9(允许每个进程打开允许每个进程打开允许每个进程打开允许每个进程打开2 02 02 02 0个文件个文件个文件个文件),现在现在现在现在很多系统则将其增加至很多系统则将其增加至很多系统则将其增加至很多系统则将其增加至256256256256。openopenopenopen函数说明函数说明函数说明函数说明参数参数参数参数pathname pathname pathname pathname 指向想要打开的文件路径字符串指向想要打开的文件路径字符
12、串指向想要打开的文件路径字符串指向想要打开的文件路径字符串参数参数参数参数flags flags flags flags 表示打开文件的方式表示打开文件的方式表示打开文件的方式表示打开文件的方式,例如例如例如例如:O_RDONLYO_RDONLYO_RDONLYO_RDONLY以只读方式打开文件以只读方式打开文件以只读方式打开文件以只读方式打开文件O_WRONLYO_WRONLYO_WRONLYO_WRONLY以只写方式打开文件以只写方式打开文件以只写方式打开文件以只写方式打开文件O_RDWRO_RDWRO_RDWRO_RDWR以读写方式打开文件以读写方式打开文件以读写方式打开文件以读写方式打
13、开文件以上三种打开方式是互斥的以上三种打开方式是互斥的以上三种打开方式是互斥的以上三种打开方式是互斥的,即即即即flagsflagsflagsflags只能选择一种只能选择一种只能选择一种只能选择一种,但可但可但可但可以利用以利用以利用以利用|运算符组合运算符组合运算符组合运算符组合O_APPENDO_APPENDO_APPENDO_APPEND 每次写时都加到文件的尾端每次写时都加到文件的尾端每次写时都加到文件的尾端每次写时都加到文件的尾端O_CREATO_CREATO_CREATO_CREAT 若此文件不存在则创建它若此文件不存在则创建它若此文件不存在则创建它若此文件不存在则创建它使用此选
14、择项时使用此选择项时使用此选择项时使用此选择项时,需需需需同时说明第三个参数同时说明第三个参数同时说明第三个参数同时说明第三个参数modemodemodemode,用其说明该新文件的存取许可用其说明该新文件的存取许可用其说明该新文件的存取许可用其说明该新文件的存取许可权位权位权位权位O_EXCLO_EXCLO_EXCLO_EXCL 如果同时指定了如果同时指定了如果同时指定了如果同时指定了O_CREATO_CREATO_CREATO_CREAT,而文件已经存在而文件已经存在而文件已经存在而文件已经存在,则出则出则出则出错错错错这可测试一个文件是否存在这可测试一个文件是否存在这可测试一个文件是否存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 系统 调用 和文 IO ppt
限制150内