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

免费域名试用注册网站企业营销方案策划

免费域名试用注册网站,企业营销方案策划,汽车类网站建设预算,海口快速建站公司推荐文章目录 1 文件的概述1.1 文件分类#xff08;存储介质#xff09;1.2 磁盘文件分类#xff08;存储方式#xff09;1.3 二进制文件和文本文件的区别 2 文件缓冲区3 文件指针4 文件的API4.1 打开文件4.2 关闭文件4.3 重新定位流4.3.1 fseek4.3.2 ftell4.3.3 rewind 4.4 字… 文章目录 1 文件的概述1.1 文件分类存储介质1.2 磁盘文件分类存储方式1.3 二进制文件和文本文件的区别 2 文件缓冲区3 文件指针4 文件的API4.1 打开文件4.2 关闭文件4.3 重新定位流4.3.1 fseek4.3.2 ftell4.3.3 rewind 4.4 字符输出到文件4.5 字符串输出到文件4.6 字符的输入4.7 字符串的输入4.8 二进制流输出4.9 二进制流输入 5 示例 1 文件的概述 1.1 文件分类存储介质 1.2 磁盘文件分类存储方式 从物理的角度看 任何磁盘文件在物理上都是二进制存储的。 从逻辑的角度看 1.3 二进制文件和文本文件的区别 2 文件缓冲区 文件缓冲区的作用提高访问效率提高磁盘使用寿命。 Linux下缓冲区的4种刷新方式 行刷新遇到换行符刷新。满刷新缓冲区数据放满刷新。强制刷新使用fflush函数将缓冲区刷新。关闭刷新关闭文件时将缓冲区数据全部刷新。 fflush()详解 fflush - 刷新流 对于输出流fflush()通过流的底层写入函数强制写入所有的用户空间缓存数据到给定的输出或者更新流。 如果流的参数为NULLfflush()会刷新所有打开的输出流。概要#include stdio.hint fflush(FILE *stream);参数stream - 流返回值成功完成后返回 0。否则返回 EOF 并返回 errno设置以指示错误。示例制作模拟时钟 #include stdio.h #include unistd.hint main(int argc, char **argv) {int min 0;int sec 0;while (1){// 输出时钟printf(\r%02d:%02d, min, sec);// 刷新缓冲区fflush(stdout);// 睡眠1秒sleep(1);// 时钟逻辑判断sec;if (60 sec){sec 0;min;if (60 min){min 0;} /* end of if (60 min) */} /* end of if (60 sec) */} /* end of while (1) */return 0; }3 文件指针 所有操作文件的库函数都需要借助文件指针操作文件。 定义文件指针的一般形式为FILE *指针变量标识符FILE为大写需包含stdio.h。FILE是系统使用typedef定义出来的有关文件信息的一种结构体变量含有文件名、文件状态和文件当前位置等信息。一般情况下我们操作文件前必须定义一个文件指针来标示我们将要操作的文件。在实际编程中我们无需关心FILE结构体的细节只需要将文件指针传给io库函数库函数再通过结构体里的信息对文件进行操作。 对文件操作的步骤 对文件进行读写等操作之前要打开文件得到文件指针。可以通过文件指针对文件进行读写操作。读写等操作完毕后需要关闭文件关闭文件后就不能再通过此文件指针操作文件了。 补充在C语言中有三个特殊的文件指针无需定义在程序中可以直接使用每个进程 stdin标准输入。– 默认为当前终端键盘stdout标准输出。– 默认为当前终端屏幕stderr标准错误输出设备。– 默认为当前终端屏幕 4 文件的API 4.1 打开文件 fopen - 流打开函数 fopen() 函数打开名称为路径名指向的字符串的文件并将流与其关联。概要#include stdio.hFILE *fopen(const char *pathname, const char *mode);参数pathname - 文件路径名mode - 文件打开模式r 打开文本文件进行读取。该流位于文件开头。r 打开以进行读取和写入。该流位于文件开头。w 将文件截断为零长度或创建用于写入的文本文件。流是位于文件的开头。w 打开以进行读取和写入。如果文件不存在则创建否则它会被截断。该流位于该流的文件开头。a 打开以追加写入文件末尾。如果不存在则创建该文件。该流位于文件末尾。a 打开以进行读取和追加写入文件末尾。该文件不存在则创建。输出总是附加到末尾文件。返回值成功完成后fopen()、fdopen() 和 freopen() 返回一个 FILE 指针。否则返回 NULL 并设置 errno 来指示错误。4.2 关闭文件 fclose - 关闭流 fclose() 函数刷新流指向的流写入任何缓冲的使用 fflush(3)) 输出数据并关闭底层文件描述符。概要#include stdio.hint fclose(FILE *stream);参数stream - 文件流返回值成功完成后返回 0。否则返回 EOF 并返回 errno设置以指示错误。4.3 重新定位流 4.3.1 fseek fseek - 重新定位流 fseek() 函数设置流指向的流的文件位置指示符。新位置以字节为单位是通过将偏移字节添加到由whence指定的位置。 如果whence设置为SEEK_SET、SEEK_CUR或SEEK_END偏移量相对于文件的开头指示符当前位置或文件结尾。概要#include stdio.hint fseek(FILE *stream, long offset, int whence);参数stream - 文件流offset - 偏移量whence - 流指针位置SEEK_SET - 文件的开头SEEK_CUR - 指示符当前位置SEEK_END - 文件结尾返回值成功完成后返回0。否则-1返回并设置 errno 以指示错误。4.3.2 ftell ftell - 重新定位流 ftell() 函数获取stream 指向的流的文件位置指示符的当前值。概要#include stdio.hlong ftell(FILE *stream);参数stream - 文件流返回值成功完成后ftell() 返回当前偏移量。否则-1返回并设置 errno 以指示错误。4.3.3 rewind rewind - 重新定位流 rewind() 函数设置指向的流的文件位置指示器流到文件的开头。 相当于 fseek(stream, 0L, SEEK_SET);概要#include stdio.hvoid rewind(FILE *stream);参数stream - 文件流返回值rewind() 函数不返回任何值。4.4 字符输出到文件 fputc - 字符输出到文件 fputc() 将字符 c 写入流转换为无符号字符。概要#include stdio.hint fputc(int c, FILE *stream);参数c - 字符stream - 文件流返回值返回以 unsigned char 形式写入的字符出错时转换为 int 或 EOF。4.5 字符串输出到文件 fputs - 字符串输出到文件 fputs() 将字符串 s 写入流不带终止空字节 (\0)。概要#include stdio.hint fputs(const char *s, FILE *stream);参数s - 字符串首地址stream - 文件流返回值成功时返回一个非负数在错误时返回 EOF。4.6 字符的输入 fgetc - 字符的输入 fgetc() 从流中读取下一个字符并将其作为无符号字符返回 在文件末尾或发生错误时转换为 int 或 EOF。概要#include stdio.hint fgetc(FILE *stream);参数stream - 文件流返回值返回作为 unsigned char 转换读取的字符文件末尾或错误时为 int 或 EOF。4.7 字符串的输入 fgets - 字符串的输入 fgets() 从流中最多读取一个小于 size 的字符并将它们存储到s指向的缓冲区中。 读取在 EOF 或换行符后停止。如果读取换行符则将其存储到缓冲区中。一个术语空字节\0存储在缓冲区中最后一个字符之后。概要#include stdio.hchar *fgets(char *s, int size, FILE *stream);参数s - 缓冲区地址size - 缓冲区总大小stream - 流返回值fgets() 成功时返回 s出错时或在未读取字符的情况下发生文件末尾时返回 NULL。注意不建议将对 stdio 库的输入函数的调用与对 read(2) 的低级调用混合使用与输入流关联的文件描述符结果将是不确定的很可能不是你要。4.8 二进制流输出 fwrite - 二进制流输出 函数 fwrite() 将 nmemb 数据项每个大小size写入Stream 指向的流从 ptr 给出的位置获取它们。概要#include stdio.hsize_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);参数ptr - 写入数据的地址size - 块大小nmemb - 块数stream - 文件流返回值成功后fwrite() 返回写入的项目数。这仅当 size 为 1 时number 才等于传输的字节数。4.9 二进制流输入 fread - 二进制流输入 函数 fread() 从以下位置读取 nmemb 数据项每个大小为 size 长 Stream 指向的流将它们存储在 ptr 指定的位置。概要#include stdio.hsize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);参数ptr - 存储数据的地址size - 块大小nmemb - 块数stream - 文件流返回值成功后fread() 返回读取的项目数。这仅当 size 为 1 时number 才等于传输的字节数。注意fread() 不区分文件结束和错误调用者必须使用feof(3) 和ferror(3) 来确定发生了哪一个。5 示例 #include stdio.hint main(int argc, char **argv) {FILE *fp NULL;char str[128] hello world!;long ret 0L;/* 打开文件 */fp fopen(test, w);if (NULL fp){perror(fopen);return -1;} /* end of if (NULL fp) *//* 写入 */ret fwrite(str, sizeof(char), sizeof(str), fp);printf(%ld\n, ret);/* 关闭文件 */fclose(fp);fp NULL;return 0; }$ ./a.out 128
http://www.w-s-a.com/news/373788/

相关文章:

  • 宽带技术网网站wordpress widget hook
  • 山西省住房和城乡建设厅网站报名wordpress添加标签插件
  • 网站怎么自己做外贸网站案例
  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题