当前位置: 首页 > news >正文

企业网站开发免费简约ppt模板

企业网站开发,免费简约ppt模板,网站内容为王,个人网站这么做个人主页#xff1a;仍有未知等待探索-CSDN博客 专题分栏#xff1a; Linux 目录 一、文件 1、文件的理解#xff08;浅层#xff09; 1.文件是什么#xff1f; 2.文件操作的前提 3.文件的存储 4.一个进程可以打开多个文件吗#xff1f;如果可以怎么管理的#xf… 个人主页仍有未知等待探索-CSDN博客 专题分栏 Linux 目录 一、文件 1、文件的理解浅层 1.文件是什么 2.文件操作的前提 3.文件的存储  4.一个进程可以打开多个文件吗如果可以怎么管理的  5.打开文件fopen用法 ​编辑 选项‘w‘ 选项’a‘ 6、输出重定向 重定向 追加重定向 2、文件的理解深层 1.文件操作 本质 底层逻辑  2.认识系统调用和文件操作 1、文件描述符fd 标准输出和标准错误都是向显示器中打印数据他们俩有什么区别 打开多个文件的时候怎么存储在struct file_struct* fd_array[N]数组里面 文件操作符表的分配规则 2、打开并创建文件open 参数 ​编辑 返回值 底层逻辑 3、关闭文件close 参数 返回值 4、写入文件write 5、读文件read 返回值 3.理解Linux一切皆文件 4.C语言中文件类型FILE 二、重定向和缓冲区 1、重定向 1.本质 2.重定向的理解 3.重定义符号‘’ 2、缓冲区 1.stat系统调用 参数 2.缓冲区 为什么打印的时候不进行刷新就没有显示 什么是缓冲区 为什么要有缓冲区 缓冲区是怎么刷新的 a、提高刷新策略。 b、特殊情况。 C语言为什么要在FILE中提供用户级缓冲区 为什么需要fd 1、2 perror和printf的区别 文件和缓冲区的关系 一、文件 1、文件的理解浅层 1.文件是什么 文件 属性 内容。 2.文件操作的前提 程序运行是文件操作的前提。 文件操作就是cpu在执行代码本质就是进程在操作文件。 3.文件的存储  文件在没有打开的时候文件的属性和内容存储在磁盘上。 文件打开的时候文件的属性存储在内存里文件的内容按需加载到内存中。 4.一个进程可以打开多个文件吗如果可以怎么管理的  一个进程可以打开多个文件。 管理的本质就是先描述在组织。 管理一个文件为了能更好的描述文件os内部会用一个结构体来记录文件的各种属性结构体内部会有一个指针指向一个文件缓冲区里面存储着文件的内容。 管理一堆文件将每个文件所对应的结构体用一个数组进行存储。 5.打开文件fopen用法 选项‘w‘ 以 ’写‘ 的方式打开文件。 1、如果该文件不存在就在当前路径下新建一个文件。 2、默认打开的时候会把目标文件清空。 选项’a‘ 以 ’追加‘ 的方式打开文件。 1、 默认打开的时候不会把目标文件清空而是在文件内容的后面进行追加。 6、输出重定向 重定向 echo “aaa” log.txt 重定向一定是文件操作。以 ’w‘ 的方式打开文件。 追加重定向 echo “aaa” log.txt 追加重定向一定是文件操作。以 a 的方式打开文件。 2、文件的理解深层 1.文件操作 本质 进程和文件的交互关系。 底层逻辑  --- 想要对文件进行操作。 --- 去磁盘中寻找文件找到以指定方式打开找不到则新建文件。 --- 对其进行打开操作然后需要外设对其进行输入或者输出操作。 --- 向文件进行写入本质上是向硬件中写入。 --- os是硬件的管理者用户没有权限对其进行修改。 --- 所以os提供了一系列的系统调用。 --- fopen/fwrite/fread/fpintf/scanf/printf/cin/cout都是对系统调用的封装。 2.认识系统调用和文件操作 1、文件描述符fd 文件描述符fd的本质就是存储文件信息的数组下标。 下面这个3个文件都是默认打开的。 fd 0标准输入键盘 --- stdin。 fd 1标准输出显示器 --- stdout。 fd 2标准错误显示器 --- stdout。 标准输出和标准错误都是向显示器中打印数据他们俩有什么区别 在打印信息的时候可以将标准输出和标准错误进行分离。 打开多个文件的时候怎么存储在struct file_struct* fd_array[N]数组里面 找到没有存储文件且下标最小的位置。 文件操作符表的分配规则 查自己进程的文件操作符表分配最小的没有被使用文件操作符fd。 由图可知无论是读文件还是写文件都将文件内容从磁盘中读取到文件级缓冲区中。 2、打开并创建文件open 参数 pathname a.如果传的是路径则在指定路径下打开文件。若没有该文件则以指定方式新建文件。 b.如果传的是文件名则在当前路径下打开文件。若没有则以指定方式新建文件。 flags 32位比特位是指定打开文件的方式有很多的系统的选项。 O_WRONLY --- 只写 O_CREAT --- 创建 O_TRUNC --- 清空 O_APPEND --- 追加 O_RDONLY --- 只读 // 以只写、追加的方式打开文件当当前路径没有文件时创建文件若有文件则打开文件 int fd1 open(test.txt, O_WRONLY | O_CREAT |O_APPEND, 0666);// 以只写、追加的方式打开文件当当前路径没有文件时不处理若有文件则打开文件 int fd2 open(test.txt1, O_WRONLY | O_APPEND, 0666); // 原理flags // 这样就完成了各种选项的筛选#include stdio.h#define O_WRONLY (1) #define O_CREAT (1 1) #define O_APPEND (1 2) #define O_RDONLY (1 3) #define O_TRUNC (1 4)void func(int flags) {if (flags O_WRONLY)printf(O_WRONLY\n);if (flags O_CREAT)printf(O_CREAT\n);if (flags O_APPEND)printf(O_APPEND\n);if (flags O_RDONLY) printf(O_RDONLY\n);if (flags O_TRUNC)printf(O_TRUNC\n);printf(\n); } int main() {func(O_WRONLY);func(O_WRONLY | O_CREAT);func(O_WRONLY | O_CREAT | O_APPEND);func(O_WRONLY | O_CREAT | O_APPEND | O_RDONLY);func(O_WRONLY | O_CREAT | O_APPEND | O_RDONLY | O_TRUNC);return 0; } mode 如果有O_CREAT选项并且在指定路径下文件不存在则新建文件的权限就是mode。 最终的文件权限 ~unmark mode 返回值 返回的是打开文件或者新建文件的文件描述符fd。 底层逻辑 创建file。开辟文件缓冲区的空间加载文件数据延后加载、按需加载。查进程中的文件描述符表。将 file 的struct_file的地址存入文件描述符表中。返回下标。 3、关闭文件close 参数 fd 就是你要关闭的文件的fd。 返回值 如果关闭成功则返回 0 如果关闭失败则返回-1并且设置了错误码errno。 4、写入文件write 将大小为 count 的 buf 里面的内容写入到 fd 文件里面。 5、读文件read 从 fd 中 读数据存储到buf中count为能读取的最大字节数即buf所指向的空间大小。 返回值 返回值大于零则代表实际读了多少字节。 3.理解Linux一切皆文件 对于fd 0、1、2分别对应着不同的硬件但是硬件是怎么和文件相关联上的呢 4.C语言中文件类型FILE 建议使用的时候用语言层面的函数即标准库函数。因为在不同的平台下面系统调用的用法不一定相同。 FILE是一个C语言提供的结构体里面一定封装了 fd 文件描述符。 FILE* fp fopen(log.txt, w); // fp 里面封装了 fdfp-fileno // w O_WRONLY | O_CREAT | O_TRUNC 二、重定向和缓冲区 1、重定向 1.本质 是在内核中改变文件描述符表特定下标的内容 和上层无关。 2.重定向的理解 dup2的本质就是文件描述符下标对应的内容拷贝。 --- 将newfd文件关闭把oldfd文件描述符放入newfd中具体的效果就是下列的图。 对应printf函数在底层就已经默认是对fd1的位置的文件中进行打印。 #include sys/types.h #include sys/stat.h #include fcntl.hint main() {// 把显示器关闭int fd open(test.txt, O_WRONLY | O_CREAT | O_TRUNC);dup2(fd, 1);printf(I am test.c);return 0; } 3.重定义符号‘’ 格式newfd oldfd。 2、缓冲区 1.stat系统调用 stat系统调用的作用是获取文件或者目录的状态信息文件的各种属性 参数 struct stat* buf是一种输出型参数。指向的是存储文件属性的结构体。 off_t st_size文件的大小字节 2.缓冲区 为什么打印的时候不进行刷新就没有显示 struct FILE* 这个结构体里有语言级别的文件缓冲区。 fflush()的作用是将语言级别的缓冲区刷新到操作系统里面的内核文件缓冲区。 什么是缓冲区 缓冲区就是一段内存空间。 为什么要有缓冲区 给上层空间提供高效的IO体验间接提高整体的效率。 缓冲区是怎么刷新的 a、提高刷新策略。 立即刷新。fflush(stdout)用户级到内核级缓冲 区、fsync(int fd)内核级缓冲区到外设 行刷新。是为了照顾用户的习惯 --- 显示器 全缓冲。缓冲区写满才刷新。--- 普通文件 b、特殊情况。 进程退出系统会自动刷新。 强制刷新。 C语言为什么要在FILE中提供用户级缓冲区 为了减少底层调用系统调用的次数让使用C语言的IO函数效率更高。 为什么需要fd 1、2 我们写的程序本质都是对数据在进行处理计算、存储所以我们需要知道处理时候发生异常的原因。 打印到显示器的里面的信息可能是正确的可能是错误的。1、2都是往显示器中打印这样的话在文件层面正确信息和错误信息就分开了./a.out 1 log.txt 2 err.txt。  perror和printf的区别 perror本质上是向2打印而printf本质上是向1打印。 文件和缓冲区的关系 每一个文件都有自己的缓冲区和文件操作符表。 每个进程在操作系统中通过文件描述符来访问文件并且这些访问可能涉及到由操作系统或应用程序库管理的文件缓冲区。 谢谢大家
http://www.w-s-a.com/news/958586/

相关文章:

  • 江苏省建设厅网站建筑电工证wordpress收费插件大全
  • 北京中国建设银行招聘信息网站宁德蕉城住房和城乡建设部网站
  • 泉州做网站优化哪家好wordpress站点预览
  • 创建门户网站一页网站首页图如何做
  • 服装手机商城网站建设sns社交网站有哪些
  • 无锡工程建设招标网站怎么自己建设公司网站
  • 哪个网站可以学做咸菜安卓软件开发需要学什么软件
  • 自有网站建设的团队遂宁市建设局网站
  • 网站建设哪个好一些网站内容导出
  • 什么网站的页面做的比较好看网上做平面设计的网站
  • 网站建设单选网站建设学校培训学校
  • 可以做app的网站logo设计在线生成免费标小智
  • 网站变更备案做酒类网站
  • 网站必须要备案吗东莞市非凡网站建设
  • 太原建网站公司网站设计的流程是怎样的
  • 网站开发交易平台北京网站建设的价格低
  • 捷克注册公司网站搜索引擎广告推广
  • 网站的实用性青岛九二网络科技有限公司
  • 广东备案网站网站反链如何做
  • 做网站的实施过程企业建设H5响应式网站的5大好处6
  • ps制作个人网站首页景安搭建wordpress
  • 常德建设网站制作网站建设推广是什么工作
  • 长春服务好的网站建设百度推广话术全流程
  • 做的网站浏览的越多越挣钱基于jsp的网站开发开题报告
  • 好的做问卷调查的网站好网站调用时间
  • 广州微网站建设平台阿里云国外服务器
  • 如何把做好的网站代码变成网页wordpress shortcode土豆 视频
  • 网站改版竞品分析怎么做中山网站建设文化价格
  • 玉林市网站开发公司电话做网站空间 阿里云
  • 南充做网站略奥网络免费的正能量视频素材网站