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

网站地图制作软件柳州市城乡建设局网站

网站地图制作软件,柳州市城乡建设局网站,兰州免费网站建设,网站开始开发阶段的主要流程man手册 普通命令。系统调用的函数。库函数。特殊文件。文件格式。游戏。附加的一些变量 IO介绍 I#xff1a;input 输入 O#xff1a;output 输出 对文件的输入和输出 输入-》写文件#xff0c;将文件中的内容写到内存中去 输出-》读文件#xff0c;将内存中的内容读取到文… man手册 普通命令。系统调用的函数。库函数。特殊文件。文件格式。游戏。附加的一些变量 IO介绍 Iinput 输入 Ooutput 输出 对文件的输入和输出 输入-》写文件将文件中的内容写到内存中去 输出-》读文件将内存中的内容读取到文件中 linux下一切皆文件 文件类型bcd-lsp b块设备文件c字符设备文件d目录文件-普通文件l链接文件s套接字文件p管道文件 标准IO和文件IO 文件IO 内核向上提供的输出输出函数接口叫做系统调用函数接口。基于内核内核不同系统调用函数接口不同文件IO不同操作系统函数接口不通用。可移植性较差。 标准IO 标准IO是C库中定义的一组用于输入输出的函数接口。不同的操作系统只要移植了C库就可以使用它是在系统调用之前做了一个二次封装相当于是间接的进行了系统调用。可移植性强可以在不同的系统环境下进行使用。 标准IO的调用逻辑 标准IO读写 if是linux操作系统 {调用的就是linux的内核函数接口文件IO } if是windows操作系统 {调用的就是windows的内核函数接口文件IO } if是macos操作系统 {调用的就macos的内核函数接口文件IO }标准IO在系统调用之前作了二次封装增加了缓存机制减少了系统调用的次数提高了程序的效率。 正常的系统调用 应用层读写文件-》调用内核层的函数接口-》与硬件进行交互-》拿到数据返回给应用层-》每次读写重复 带有缓存机制 应用层读写文件-》调用内核层的函数接口-》与硬件进行交互-》拿到数据返回给应用层的缓存区-》每次读写从缓存区读取 标准IO 标准IO的特点 标准IO是c库中提供的一组专门用于输入输出的函数接口标准IO由ANSI C标准定义不仅能在Unix操作系统上在很多的操作系统上都实现了标准IO标准IO通过缓存机制·减少系统调用的次数提高效率标准IO围绕流进行操作stream在标准IO中流用FILE *来描述。标准IO默认打开三个流标准输入stdin标准输出stdout标准出错stderr。 流 定义 所有的I/O操作仅是简单的从程序移进或者移出这种字节流就称为流。 分类 文本流/二进制流。 流指针FILE * FILE* 是一个指向 FILE 结构体的指针这个结构体由标准库定义用于表示一个打开的文件或输入/输出流。 查看结构体vi -t FILE 输入1 追ctrl ] _IO_buf_end:缓存区的结束地址 _IO_buf_base:缓存区的起始地址 缓存区的分类 全缓存基于文件 刷新全缓存: 1.程序正常退出 遇到return (main) exit退出进程 关闭fclose流指针 2.fflush强制刷新缓存 3.缓存区满 2.行缓存 --基于终端:stdin\stdout 刷新缓存区: 1.程序正常退出 遇到return (main) exit退出进程 关闭fclose流指针 2.fflush强制刷新缓存 3.缓存区满 4.\n刷新 .不缓存: stderr 注意缓存区只有在使用的时候才会开辟。 示例 非正常结束不刷新 \n刷新 缓存区满 fflush强制刷新 #include stdio.h int fflush(FILE *stream); 功能刷新缓存区 参数stream:流 (NULL:刷新所有流) 返回值成功0失败EOF(-1)更新errno。 用法fflushNULL标准IO的函数接口 1. 打开文件fopen 2. 关闭文件fclose 3.读/写单个字符fgetc fputc 4. 读/写一串字符串fgets fputs 5. 读/写一个二进制文件:fread fwrite 6. 移动指针fseekfopen打开文件 #include stdio.h FILE *fopen(const char *path, const char *mode); 功能打开文件fopen()函数打开由 pathname 指向的文件名对应的文件并为该文件关联一个流。 参数“argument mode”指向一个以以下序列开头的字符串可能还包含下面描述的其他字符参数path打开的文件的路径mode打开方式 打开方式 r:只读文件指针定位到文件开头(有文件) r:可读可写文件指针定位到文件开头(有文件) w:只写文件不存在创建存在清空文件指针定位到文件开头 w可读可写文件不存在创建存在清空文件指针定位到文件开头 a: 只写文件不存在创建存在追加到文件末尾 a可读可写文件不存在创建存在追加到文件末尾 读文件指针定位到文件开头。 返回值成功-的到文件流指针失败NULL更新errno示例代码 问一个任务中最多能打开多少个文件1024个一个文件可不可以被重复的打开可 注意打开的文件属于有限资源最多打开1024个文件可以被重复打开打开的文件不用了需要及时关闭 fclose关闭文件 int fclose(FILE *stream); 功能关闭文件 参数 stream:流指针 返回值成功0失败-1更新errno示例代码 #include stdio.h int main(int argc, char const *argv[]) {//打开一个名字叫test.c的文件以只读的形式FILE *fp fopen(./test.c,r);if (fp NULL){perror(fopen filed);return -1;}printf(open success\n);fclose(fp);return 0; }perror #include errno.h void perror(const char *s); 功能根据errno值获取错误信息将信息输出到终端 参数S提示内容 返回值无fgetc读取单个字符 int fgetc(FILE *stream);功能从文件中读一个字符参数stream:流指针(从那个文件读) 返回值成功返回读到字符的ascii值失败返回或读到文件结尾返回-1. 示例代码 fputc写单个字符 int fputc(int c, FILE *stream); 功能:向指定的文件中写入一个字符 参数:c:要写入字符的ASCII值stream:流指针 返回值:写入字符ASCII值失败返回:EOF练习用fgetc和fputc实现cp功能将A文件中的内容放入B文件。 #include stdio.h int main(int argc, char const *argv[]) {// 打开文件FILE *fp_src fopen(./fopen.c, r);if (fp_src NULL){perror(open src filed);return -1;}FILE *fp_dest fopen(./test.c, w);if (fp_dest NULL){perror(open dest filed);return -1;}//循环读取文件char ch;while ((ch fgetc(fp_src)) ! -1){fputc(ch,fp_dest);}printf(读取完成\n);fclose(fp_src);fclose(fp_dest);return 0; }fprintf向指定文件写入数据 #includestdio.hint fprintf(FILE *stream, const char *format, ...); 功能向指定的文件以指定的格式写入数据 参数 stream :流指针format:指定格式...:多个参数返回值:输出字符个数失败返回:EOF示例代码 #include stdio.h int main(int argc, char const *argv[]) {// 打开一个名字叫test.c的文件以只读的形式FILE *fp fopen(./a.txt, w);if (fp NULL){perror(fopen filed);return -1;}printf(open success\n);int age 21;const char *name jj;double height 156.666;fprintf(stdout,age:%d\n,age);fprintf(fp,name:%s\n,name);fprintf(fp,height:%lf\n,height);fclose(fp);return 0; }fgets获取字符串 char *fgets(char *s, int size, FILE *stream); 功能从文件中获取指定长度的字符串 参数 s:字符串存放的首地址size期望获取字符的个数 实际读size-1个字符会自动补\0,预留一个位置补\0.文件中不满size-1个有多少读多少都会补\0.当读到\n结束不再读下一行内容再次调用fgets继续从下一行开始读。 stream文件流指针 返回值成功返回获取成功字符串存放的首地址失败或读到文件结尾返回NULL。示例代码 #include stdio.h int main(int argc, char const *argv[]) {// 打开一个名字叫test.c的文件以只读的形式FILE *fp fopen(./a.txt, r);if (fp NULL){perror(fopen filed);return -1;}printf(open success\n);char buf[64];while (fgets(buf, sizeof(buf), fp) ! NULL){printf(buf:%s, buf);}fclose(fp);return 0; }文件指针偏移函数 1. rewind void rewind(FILE *stream) 功能将文件指针定位到文件开头 参数流指针2.ftell long ftell(FILE *stream) 功能计算文件指针当前的位置相对于文件开头 返回值成功返回当前文件指针相较于开头的字节数失败-13.fseek int fseek(FILE *stream, long offset, int whence);功能将文件指针偏移到指定位置参数stream流指针offset偏移量 5 --》相对于位置向后偏移5byte-5 --》相对于位置向前偏移5bytewhence相对位置SEEK_SET:开头SEEK_CUR:当前SEEK_END结尾返回值成功0失败-1更新errno 举例 fseekfp-10SEEK_END fseekfp-10SEEK_CUR练习使用ftell计算文件的长度 #include stdio.h int main(int argc, char const *argv[]) {FILE *fp fopen(argv[1],r);if (fp NULL){perror(fopen filed);return -1;}//定位到文件的末尾fseek(fp,0,SEEK_END);//计算文件的长度long lenth ftell(fp);printf(len:%ld,lenth);fclose(fp);return 0; }未完待续……
http://www.dnsts.com.cn/news/216684.html

相关文章:

  • 大型网站开发 赚钱潜江网站建设
  • 最新聊天记录做图网站网站百度不到
  • 做网站用哪个ecalipse广西建设网站网址多少钱
  • 商用高端网站设计新感觉建站wordpress怎么开启下载收费功能
  • 怎么做网站论坛整站优化推广
  • 书法网站开发的前景网络需求分析的主要内容有哪些
  • win10 做网站服务器吗成都装饰网站建设
  • 公司想推广做网站有用做视频网站要注意什么
  • 上城区商城网站建设南宁seo外包服务
  • 怎么样制作网站教程网站动态交互
  • 建设音乐网站功能定位低代码建站平台
  • 中山网站制作套餐汽车行业网站设计
  • 网站导航栏下载网站运营每天做的
  • 想开一家相亲网站 怎么做南昌网站建设q479185700棒
  • 设计建设网站哪家好效果图制作属于什么经营范围
  • 百度公司网站制作泸县手机网站建设
  • 做网站必须要买服务器吗没有备案的网站使用微信
  • 服务器除了做网站还能做什么桂林论坛爆料
  • 新企业在哪里做网站好织梦网站手机页怎么做
  • 布吉做棋牌网站建设哪家便宜网站mssql 导出数据
  • 江门营销型网站建设三门县住房和城乡建设规划局网站
  • 网站优化建议怎么写wordpress首页不显示最新文章
  • wordpress文章背景音乐合肥网站建设 乐云seo
  • 重庆城乡规划和建设局网站深圳华强北招聘网
  • itc 做市场分析的网站字母logo在线设计
  • 通州广州网站建设网站开发的时间流程
  • 建湖做网站找哪家好网站的关键词策略
  • 莆田网站建设公司长沙做网站哪个最好
  • 兰州市建设工程安全质量监督站网站友博国际个人中心登录
  • 网站域名的设置河北黄骅市网站建设