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

网站登陆模板下载深圳纯设计室内设计公司排名

网站登陆模板下载,深圳纯设计室内设计公司排名,wordpress怎么登,中国能源建设集团招聘网站1,为什么语言喜欢做封装? 我们先知道一个概念,显示器叫做字符设备,根据ACSLL码来打印数据,所以我们从键盘输入的 1234,在显示器看来就是一个一个的字符(1,2,3,4)而不是一千两百三十四: 下图输入字符类型数…

1,为什么语言喜欢做封装?

我们先知道一个概念,显示器叫做字符设备,根据ACSLL码来打印数据,所以我们从键盘输入的

1234,在显示器看来就是一个一个的字符('1','2','3','4')而不是一千两百三十四:

 下图输入字符类型数据:

下图输入int类型数据:

可以看到,要是输入int类型数据到显示器里,就会被解析成另外一个字符,不能如我们所愿的打印出1234,我们需要将输入的int类型值格式化之后才能向显示器输出:

所以为什么c中有printf?为什么又write还要printf?

因为要把内存级别的数据转成字符串,再用write打印到显示器,如果这些全程交给程序员来做不做封装,就会降低程序员的工作效率,这就是c/c++为什么提供fput等io接口的原因之一。

键盘输入数据也是以字符串的方式输入。

如果直接用read读出来的是字符串,如果要的是1234数字而不是字符串,就有c封装的scanf(“%d”,&a);,和上面的代码模板类似:buffer ---> %d ---> &a;

所以c/c++为什么要封装?

1,为了方便用户操作

因为在操作系统中无文本的概念,只有二进制,但在语言层,就转化成用户可看的:

例子就是./text,text.c变成可执行文件的过程就是把代码编译成二进制文件。

2,提高语言的可移植性

Linux,win ,macos底下都有不同的系统调用接口,printf就封装了这三种接口的方法,如果是在Linux中用printf他就会调用Linux的接口,如果在win中用就调用win接口。

2,IO的基本过程

1,缓冲区

write本质其实是拷贝函数,从用户拷贝到缓冲区:

然后再由os自主决定什么时候刷新到外设:

外设可以以预加载到缓冲区:

每个函数都有自己的操作表,里面是函数指针的合集,指向文件内核缓冲区。

修改的本质也是先读取在写入。

为什么要存在缓冲区?

因为磁盘很慢,内存很快,缓冲区的存在变相提高了效率。

同时这就是我们平时写东西的时候没按保存,缓冲区没把数据刷到磁盘,断点的时候我们写的东西就不会被保存而被刷掉。

2,重定向

我们在打开文件的时候,把0关掉会怎么样?:

可以看到,0号关了之后就会被新创建的表占用:

那么把2关掉会怎么样:

     

把2关掉首创建的文件就会把2占用,如果把1关了会怎么样?

把1关了相当于把显示器输出关了,printf不知道哦我们关了一号文件,printf就无法把内容输入到显示器,根据我们之前的理解,这个时候printf应该会向一号文件中写入我们要输出的东西:

事实证明文件里什么都没有,为什么呢?

因为写入的内容在缓冲区中没刷新到文件里,程序推出后缓冲区清空,写入的内容消失,这时候需要用fflush刷新到文件中:

可以看到,数据已被刷入文件。

那么本来应该向显示器文件写入的,却写到了文件中?

也就是改变了一号指向显示器的文件,改到了指向其他文件,这就是重定向了!

重定向的过程中,上层代码毫不知情,他们只认识0,1,2.

那么有无接口直接重定向而不是这样关闭打开操作太麻烦了?

dup2!

如果不理解之前文件描述符等等的学习经历,就无法理解为什么dup2里传1,2就可以重定向?

只有学习里,才知道里面1,2的作用,才能理解dup2,

重定向之后,被覆盖的文件如果没有其他指针指向,就会自动关闭文件。

覆盖的文件如果没有关掉之前老地址的指向,就会有两个指针指向该文件。

操作:

     

什么是追加重定向?就是open里面的是O_APPEND,而不是O_TRUNC.

与重定向的方法无不同,只是打开方式不同。

什么是输入重定向?

将键盘的位置和文件换一下,就变成了直接从文件中读内容。

重定向之后很少恢复,入宫需要恢复可以在重定向之前存好需要被重定向的文件。

     

http://www.yayakq.cn/news/127714/

相关文章:

  • 帮别人做网站开什么内容的专票刷网站百度关键词软件
  • 西安建设门户网站如何查网站的备案号
  • 潍坊点睛做网站怎么样旅游网站排名前十
  • 甘肃省建设厅网站首页wordpress 分类目录–标签转换器
  • 常德网站建设优化广州公司网站制作公司
  • 花卉网站建设规划书鹿寨县建设局网站
  • 保定徐水网站建设动态交互网站建设
  • 带数据的网站网站建设教程大全 百度网盘
  • 济南网站排名推广dw做的网站乱码
  • 图文消息点击进去是自己的网站重庆app定制
  • 反馈网站制作太原免费网站建设
  • 网站建设方案模板范文重庆观音桥
  • 网站建设与设计毕业设计惠来建设局网站
  • 重点实验室网站建设的意义厦门思明区建设局网站
  • visual stdio 做网站 注册用户 密码必须6位以上电脑网络优化软件
  • 相亲网站上做绿叶的女人很多怎么做文学动漫网站
  • 郑州开发小程序多少钱重庆网页优化seo公司
  • 做网站主流软件是php吗网站的建设有什么好处
  • 玉田做网站德州王霞网站建设
  • 泉州有那些网站建设公司p2c网站方案
  • 祝贺网站上线作业3 主题资源网站建设
  • 公司网站建设算什么费用制作小动画的软件
  • wordpress 查询当月芜湖网站优化公司
  • 网站建设后怎么写网店运营推广登录入口
  • 网站建设数据库是什么意思网站直播怎样做
  • 建网站 企汇网泸州城建设档案管网站
  • 建设积分商城网站网站二次开发合同
  • 二级网站建设方案 试行专业的移动客户端网站建设
  • 室内设计师做单网站有哪些网站建设的方法
  • 密云建设网站公司手机网站模板 html5