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

网页设计网站思路百度seo网站优化

网页设计网站思路,百度seo网站优化,医疗行业网站建设方案,毕业设计网站建设体会文章目录 前言一、重定向二、系统调用dup2三、重定向的使用四、一切皆文件 前言 Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2, 0,1,2对应的物理设备一般是:键盘&#xff…

文章目录

  • 前言
  • 一、重定向
  • 二、系统调用dup2
  • 三、重定向的使用
  • 四、一切皆文件


前言

Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2, 0,1,2对应的物理设备一般是:键盘,显示器,显示器

在这里插入图片描述

而现在知道,文件描述符就是从0开始的小整数。当我们打开文件时,操作系统在内存中要创建相应的数据结构来描述目标文件。于是就有了file结构体。表示一个已经打开的文件对象。而进程执行open系统调用,所以必须让进程和文件关联起来。每个进程都有一个指针*files, 指向一张表files_struct,该表最重要的部分就是包涵一个指针数组,每个元素都是一个指向打开文件的指针!所以,本质上,文件描述符就是该数组的下标。所以,只要拿着文件描述符,就可以找到对应的文件

一、重定向

文件描述符的分配规则:在files_struct数组当中,找到当前没有被使用的
最小的一个下标,作为新的文件描述符。
我们先来看这段代码
在这里插入图片描述
毫无疑问我们标准输入,标准输出和标准错误占据了file数组0,1,2位置,然后我们执行程序也是打印在显示器上面
在这里插入图片描述

接下来我们再对源代码进行一些更改

在这里插入图片描述
我们执行程序发现没在显示器上面打印信息,而是在文件里面打印了
在这里插入图片描述
而且此时的文件描述符为1,也验证了我们上面说的:
在files_struct数组当中,找到当前没有被使用的
最小的一个下标,作为新的文件描述符。
在这里插入图片描述
原理:我printf默认用标准输出来封装,而我标准输出的文件描述符在数组中对应的是1,我printf只管往1里面写入,不关心你1里面到底是谁,所以当我们关闭原来的文件描述符为1的标准输出,我1位置就放入了myfile的文件指针,所以会向myfile中写入
在这里插入图片描述

二、系统调用dup2

在这里插入图片描述
dup是duplicate的缩写具有重定向的功能,(不需要我们像上面那样复杂的先去关闭一个指定位置,再打开一个新文件的操作),之所以叫这个名字我们需要从原理层来看:

dup2()

我们新打开的文件,操作系统创建fiile的结构体并且其文件描述符分配为3,指针数组中下标1位置直接对我们数组中下标为3位置进行拷贝,1位置最后也指向log.txt的文件结构体
在这里插入图片描述

printf是C库当中的IO函数,一般往 stdout 中输出,但是stdout底层访问文件的时候,找的还是fd:1, 但此时,fd:1下标所表示内容,已经变成了myfile的地址,不再是显示器文件的地址,所以,输出的任何消息都会往文件中写入,进而完成输出重定向。

因为IO相关函数与系统调用接口对应,并且库函数封装系统调用,所以本质上,访问文件都是通过fd访问的。所以C库当中的FILE结构体内部,必定封装了fd。

三、重定向的使用

在这里插入图片描述
执行文件:

在这里插入图片描述
我们会发现hello error没有写入log.txt中而是直接打印在了显示器上这是为什么呢?
前面我们已经有过重定向的知识了,这里应该不难理解,

//本质是将log.txt重定向到1也就是标准输出流的位置,
完整写法应该是这样的:
./test 1 > log.txt
因为文件描述符1被重定向,所以我们朝stdout里写入的数据虽然
依旧会向1所指向的位置
去写入,但因为我们的1位置已经被新文件重定向也就是1中存的是新文件的信息地址,
所以写入的时候会写入新文件的位置,这也就解释了为什么log中会被写入数据而我们stderror标准错误流对应的文件描述符2不受影响,
所以我依旧向显示器打印

我们也可以选择重定向到标准错误对应的文件描述符中
在这里插入图片描述
我们也可以将重定向1输出到log.txt中剩余的内容再重定向到文件描述符为2的位置
在这里插入图片描述

还可以同时把这些内容输入到一个文件当中去
在这里插入图片描述
在这里插入图片描述

四、一切皆文件

即使是外设,Linux中也会把他们看成文件,当成文件来进行管理

在这里插入图片描述
在这里插入图片描述

完整图:
在这里插入图片描述

http://www.ds6.com.cn/news/48209.html

相关文章:

  • 织梦 网站栏目管理 很慢快速排名生客seo
  • 桃城网站建设windows优化大师有毒吗
  • 电商思维做招聘网站baidu 百度一下
  • 做网站最专业的公司有哪些老鬼seo
  • 做网站的原型文件下载百度入口网页版
  • 平湖手机网站建设百度手机快速排名点击软件
  • 2023石家庄疫情二次爆发福州seo排名优化公司
  • 属于教育主管部门建设的专题资源网站是网站权重等级
  • 基础网站建设代码上海网络推广公司
  • 优质的南昌网站建设亚马逊关键词搜索工具
  • 网站怎么做国际化怎么开网店新手入门
  • 今日新开传奇手游发布网58同城关键词怎么优化
  • 新乡网站建设产品推广文案100字
  • 如何加强政府门户网站维护和网站安全建设app注册推广平台
  • wordpress 段落显示不全优化工作流程
  • 做网站有一个火箭回顶部农村电商平台
  • 做网站一般用什么 语言seo石家庄
  • 连云港做网站哪里好长沙建站seo公司
  • 网站客服在线怎么做seo运营是做什么的
  • 毕业设计做网站还是系统好网页设计是干嘛的
  • 动态商务网站开发与管理关键词搜索查询
  • 网站建设请示手机百度搜索引擎入口
  • 网站建设mrd文档模板网上销售平台
  • 做后台财务系统网站最新时事热点
  • 南京做网站询南京乐识网站开发报价方案
  • 网上做网站赚钱吗seo网站优化优化排名
  • 猪八戒做网站要多少钱福州网络营销推广公司
  • 中信建设有限责任公司招聘深圳百度seo怎么做
  • 常州网站建设电话免费seo快速收录工具
  • 有哪些网站下载ppt是免费的关键词优化推广排名软件