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

网络编程有哪些企业seo顾问

网络编程有哪些,企业seo顾问,北京建设网站专家,iis5.1新建网站文章目录 文件操作总结预备知识结论: C文件操作回顾语言方案w写入方式a写入方式r只读方式 系统方案但是这个**没有设置权限**,需要这样改: 文件操作总结 1.文件描述符,重定向,缓冲区,语言和系统关于文件的不同的视角的理解 – 都是要让我们深刻理解文件 2.文件系统 3.动静态库 …

文章目录

  • 文件操作总结
  • 预备知识
      • 结论:
  • C文件操作回顾
    • 语言方案
      • w写入方式
      • a写入方式
      • r只读方式
    • 系统方案
      • 但是这个**没有设置权限**,需要这样改:

文件操作总结

1.文件描述符,重定向,缓冲区,语言和系统关于文件的不同的视角的理解 – 都是要让我们深刻理解文件
2.文件系统
3.动静态库 – a.制作者的角度 b.站在使用者的角度 c.如何理解动态库加载(进程地址空间的内容)

预备知识

1.你真的理解文件原理和操作了吗?这不是语言问题,这是系统的问题
2.是不是只有c/c++有文件操作呢?pytho java php go也有的,但是他们的文件操作的方法是不一样的,如何理解这种现象?有没有一种统一的视角看待所有的语言文件操作呢
3.操作文件的时候,第一件事情,都是打开文件.打开文件是做什么呢,如何理解呢
4.文件 = 内容 + 属性->针对文件的操作,对内容的操作,对属性的操作
5.当文件没有被操作的时候,文件会在磁盘上
6.当我们对文件进行操作时,文件会被放在内存上,因为冯诺依曼体系是这么规定的
7.当我们对文件进行操作时,文件需要提前被load到内存,load的是内容还是属性呢?反正至少得有属性吧
8.当我们对文件进行操作时,文件需要提前被load到内存,是不是只有你一个人在load呢?不是,内存中一定存在大量的不同文件的属性
9.综上->打开文件本质就是将我们需要的文件属性加载到内存中,OS内部一定会同时存在大量的被打开的文件,那么OS要不要管理这些被打开的文件呢?先描述,再组织!构建在内存中的文件对象结构体,struct file{就可以从磁盘来,struct file* next} ,表明被打开的文件
10.文件被打开,是谁在打开呢?OS,但是是谁让OS打开的呢? 用户(进程为代表的)
11.我们之前的所有的文件操作,都是进程和被打开文件的关系
12.进程和被打开文件的关系struct task_structstruct file的关系

结论:

  1. 每一个被打开的文件,都要在OS内创建对应的struct结构体,可以将所有的struct file 结构体用某种数据结构链接起来,在OS内部,对被打开的文件进行管理,就被转换为了对链表的增删查改
    即:文件被打开,OS要为被打开的文件创建对应的内核结构
struct file 
{//各种属性//各种链接关系
}
  1. 文件其实可以被分成两大类:磁盘文件,被打开的文件(内存文件)

C文件操作回顾

语言方案

w写入方式

w: 默认写方式打开文件,如果文件不存在,就创建它
1.默认如果只是打开,文件内容会自动清空
2.同时,每次进行写入的时候,都会从最开始进行写入
先清空,再写入

#include<stdio.h>
#define LOG "log.txt"
int main()
{FILE* fp = fopen(LOG,"w");if(fp == NULL){return perror("fopen");//fopen:xxxxreturn 1;	}//正常进行文件操作const char* msg = "hellp lx,hello 2023\n";int cnt = 5;while(cnt){char buffer[256];//int fprintf(FILE* stream,const char* format,...)//指定文件流,向指定文件打印fprintf(fp,"%s:%d:lx\n",msg,cnt)//往文件中输入fprintf(stdout,"%s:%d:lx\n",msg,cnt)//linux一切皆文件,stdout对应显示器文件 snprintf(buffer,sizeof(buffer),"%s:%d:lx\n"msg,cnt);//输入到自定义缓冲区中fputs(buffer,fp);//fputs(msg,fp);cnt--;}fclose(fp);return 0;
}

a写入方式

不会清空文件,而是每一次写入都是从文件结尾写入的,即追加

#include<stdio.h>
#define LOG "log.txt"
int main()
{FILE* fp = fopen(LOG,"a");if(fp == NULL){return perror("fopen");//fopen:xxxxreturn 1;	}//正常进行文件操作const char* msg = "aaa\n";int cnt = 5;while(cnt){fputs(msg,fp);cnt--;}fclose(fp);return 0;
}

r只读方式

int main()
{FILE* fp = fopen(LOG,"r");if(fp == NULL){return perror("fopen");//fopen:xxxxreturn 1;	}//正常进行文件操作while(1){char line[128];if(fgets(line,sizeof(line),fp) == NULL) break;else {printf("%s\n",line);}}fclose(fp);return 0;
}

系统方案

#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<errno.h>
#include<string.h>
#define LOG "log.txt"
int main()
{//fd:文件描述符int fd = open(LOG, O_WRONLY | O_CREAT);if(fd == -1){printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));}else printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));close(fp);return 0;
}

但是这个没有设置权限,需要这样改:

//写和读//头文件不变
int main()
{//fopen(LOG,"w");umask(0);//文件权限受掩码的影响//fd:文件描述符//O_CREAT和O_WRONLY不对原始内容清空int fd = open(LOG, O_WRONLY | O_CREAT| O_TRUC, 0666);if(fd == -1){printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));}else printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));//C语言,和这个接口的关系是什么呢?//C标准库函数底层是调用系统调用const char *msg = "hello lx,hollo world";int cnt = 5;while(cnt){char line[128];snprintf(line,sizeof(line),"%s,%d\n",msg,cnt);write(fd,line,strlen(line));//这里的strlen不应该加1,因为\0结尾是C语言的规定,不是文件的规定!}close(fp);return 0;
}
//追加(且)写入int fd = open(LOG, O_WRONLY | O_APPEND | O_CREAT, 0666);if(fd == -1){printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));}else printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));
//读取文件(r)int fd = open(LOG, O_RDONLY);if(fd == -1){printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));}else printf("fd:%d,errno:%d,errorstring:%s\n",fd,errno,strerror(errno));char buffer[1024];// 这里我们无法做到按行读取,我们是整体读取的size_t n = read(fd,buffer,sizeof(buffer - 1));//使用系统接口进行IO时,一定要注意\0问题if(n > 0){buffer[n] = '\0';printf("%s\n",buffer);}

![[Pasted image 20230318122921.png]]

未完待续…

http://www.yidumall.com/news/84817.html

相关文章:

  • 临安区规划建设局网站河北seo网络优化师
  • 建网站要什么工做人员专门发广告的app
  • 有个专门做gif的网站百度知道首页登录
  • 代理平台软件seo培训学院官网
  • 做网站需要的电脑配置seo推广网络
  • 中国人做网站卖美国人seo综合查询系统
  • 网站建设的关键词河南自助建站seo公司
  • 佛山网站建设网络公司天琥设计培训学校官网
  • 北京网站建设手机app电子商务台湾新闻最新消息今天
  • 做做网站需要多少钱怎么自己制作网页
  • 长春企业网站模板建站免费网页空间到哪申请
  • 做网站时怎么取消鼠标悬停优化防疫政策
  • 网站建设企业 熊掌号近期时事新闻
  • 微信网站建设哪家好梅花seo 快速排名软件
  • 网站建设课程设计报告总结各类资源关键词
  • 会所网站建设推广平台哪儿有怎么做
  • 陕西秦地建设有限公司网站安卓排名优化
  • 小视频的网站怎么做的搜索引擎调词工具哪个好
  • 手机做印章网站百度网页推广怎么做
  • 做导航网站用什么cmsseo外包公司
  • 做商城的网站用什么框架好泉州百度开户
  • 北京商城网站建设费用网络营销的基本特征有哪七个
  • 聊城市东昌府区建设局网站网站搜索工具
  • 营销网站建设818gx在线营销推广
  • 东莞建设网站开发推广营销是什么
  • 承德市兼职网招聘信息seo刷网站
  • 网站公告怎么做google官网
  • 专业的西安免费做网站semantic ui
  • 湖南城乡建设厅网站百度网站提交收录入口
  • qq网站直接登录seo sem是什么意思