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

网站的建站过程哪个公司网络最快

网站的建站过程,哪个公司网络最快,农村小工厂暴利,机关作风建设网站文章目录 预备知识C语言的文件接口系统调用文件fd 正文开始前给大家推荐个网站#xff0c;前些天发现了一个巨牛的 人工智能学习网站#xff0c; 通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。 点击跳转到网站。 预备知识 我们平时说文件就是说文件里… 文章目录 预备知识C语言的文件接口系统调用文件fd 正文开始前给大家推荐个网站前些天发现了一个巨牛的 人工智能学习网站 通俗易懂风趣幽默忍不住分享一下给大家。 点击跳转到网站。 预备知识 我们平时说文件就是说文件里面有什么那么空文件有大小吗答案肯定是有的我们平时所说的文件除了文件的内容以外还存在文件的创建时间大小等等这是文件的属性所以文件 内容 属性的。所以我们对文件的操作无非就是对文件内容或者对文件属性的操作。不管是内容还是属性它们本质都是数据所以他们被存储在磁盘中就是磁盘文件。所以我们要访问一个文件的时候都是要把这个文件打开的该文件被打开前就是磁盘文件被打开后因为CPU只和内存打交道所以被打开的文件一定会被加载到内存。所以加载磁盘文件一定会访问外设这部分工作是由OS来做的。 一个进程是可以打开很多文件的所以进程和文件的比例关系一定是 1 n 。而在我们的系统中是有很多进程的所以被打开的文件也可能会非常的多所以OS要对这些文件进行管理管理的本质就是先描述在组织因此在OS中存在struct file结构体来描述文件所以以后打开一个文件就创建一个file结构体把他们用链表链起来对文件的管理就成了对该链表的增删查改。 C语言的文件接口 C语言打开文件的是fopen 第一个参数就是打开文件的名称可以使用绝对路径也可以使用相对路径第二个参数是打开的模式经常用的就是w以写的方式打开但是每次打开都会清空文件不存在就创建还有一种常用的是a以追加的方式打开每次打开不会清空文件直接在文件结尾进行写入依然是不存在就创建。还有r方式是以只读的方式打开。经常用的就是这三种模式。 我们会发现w模式和我们指令所讲的输出重定向非常像。 a模式和追加重定向非常相似。 系统调用 我们再来认识一个系统调用open。 open函数是一个系统用调用它的第一个参数就是文件名和fopen一样但是第二个参数是标志位。标志位有很多但是这里我们只介绍常用的几种。第三个参数是文件的权限一般来说只有创建文件的时候需要设置。 关于函数传入标志为的技巧是Linux中常用的传参方式接下来给兄弟们演示一下什么叫做标志位传参。 #include stdio.h#define Print1 1 #define Print2 (1 1) #define Print3 (1 2) #define Print4 (1 3)void printflag (int flag) {if(flag Print1) printf(i am Print1\n);if(flag Print2) printf(i am Print2\n);if(flag Print3) printf(i am Print3\n);if(flag Print4) printf(i am Print4\n); } int main() {printflag(Print1);printf(\n);printflag(Print1 | Print2);printf(\n);printflag(Print1 | Print2 | Print3);printf(\n);printflag(Print1 | Print2 | Print3 | Print4);printf(\n);return 0; }所以open的第二个参数第原理和这个基本上是差不多的它的选项常用的O_WRONLY(只写)、O_RDONLY(只读)、O_CREAT(不存在就创建)、O_TRUNC(每次打开时清空文件)、O_APPEND(追加写不清空文件)。open的返回值是一个fd(文件描述符)它是用来表示一个文件的。所以C语言中的FILE也一定封装了这个数字。有了这些选项的基础我们可以来模仿实现一下fopen的各个选项的实现。 FILE _fopen(const char * str, char c) {int flag 0;int is_read;if(c a){flag O_WRONLY | O_APPEND | O_CREAT;}else{if(c w){flag O_WRONLY | O_TRUNC | O_CREAT;}else{if(c r){flag O_RDONLY;is_read 1;}else{//TODO}}}int fd 0;if(is_read){fd open(str, flag, 0x666);if(fd 0){perror(open);exit(-1);} }else{fd open(str, flag);if(fd 0){perror(open);exit(-1);} }FILE file;// _fileno就是文件描述符file._fileno fd;return file; } 所以C语言的所有库函数的本质都是封装了系统调用。 文件fd 到这里我们可以来尝试理解一下文件了。如何在系统层面上理解一下文件呢 我们知道每个进程在被创建是都是会有自己的PCB的在Linux中也就是task_struct所以每个进程的PCB中都有一个struct files_struct* files 的指针这个指针指向的结构体中有一个非常重要的一张表struct file* fd_array[]这是一个指针数组我们打开的每一个文件都会被在这个指针数组中被指向一般来说是从小到大来排列的而数组的下标就是我们上面系统调用返回的文件描述符。所以文件描述符的本质就是数组的下标。操作系统访问文件只认识文件描述符。 我们进程在运行的时候是会默认打开三个流标准输入流、标准输出流、标准错误流。这三个流对应的硬件分别是键盘、显示器、显示器。因为Linux下一切皆文件所以这三个流在进程被打开时会一次把文件描述符表的0、1、2位置给占了所以我们自己打开的文件的fd一般是从3开始从小到大排的。 OS默认打开三个流就是为了我们程序员默认进行输入输出的代码的编写。 我们如何理解一切接文件 在file文件中是有函数指针的所以对于不同的文件我们让它的文件指针指向对应的方法如果没有改方法的话我们让这个指针指向空就行了所以在上层看来文件就是这个方法但是它是可能对于不同的文件指向的方法也是不同的。
http://www.zqtcl.cn/news/815095/

相关文章:

  • 怎样推广网站平台树莓派 wordpress mysql
  • 互联网公司网站建设wordpress发文章设置文字大小
  • 国科联创网站建设无锡网站建设有限公司
  • 网站开发官网源码石家庄怎样做网站
  • 做网站的开发工具北京公司网站制作电话
  • 试用体验网站3g微网站是什么
  • 响应式网站源代码什么是营销渠道
  • 深圳品牌做网站公司有哪些php的网站数据库如何上传
  • 关于医疗保障局门户网站建设青柠直播免费版
  • 微信网站制作免费平台微商城网站建设公司的价格
  • 古典风格网站模版广州网站建设加q.479185700
  • 建站工具推荐网站关键词在哪里添加
  • 国内简约网站汽车最好网站建设
  • 外文网站建设网站项目计划书模板范文
  • 免费婚庆网站模板深圳市龙华区繁华吗
  • 档案馆建设网站邢台又一地被划定高风险区域
  • 网站怎么赚钱的网站asp源码
  • 明星网站怎么设计新手怎么做网络销售
  • ps做网站72分辨率深鑫辉网站建设
  • 购物网站设计的目的html简单登录页面代码
  • 网站导航栏下载网页自助建站
  • 新手建立网站的步骤建设企业网站个人网银
  • 俄罗斯女孩制作论文网站wordpress和hexo
  • 南宁市网站设计wordpress主题安装教程
  • 网站取消备案怎样做国外电子商务网站
  • 学校建设网站费用申请青岛平台公司
  • 平面设计师个人网站怎样登录韵网网站
  • 怎么用eclipse做网站开发推广平台取名字
  • 深圳建网站服务商广东佛山建网站
  • 网站推广公司卓立海创英文网站建设需求