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

做电影网站会有什么惩罚西安百度推广客服电话多少

做电影网站会有什么惩罚,西安百度推广客服电话多少,创网科技,一般设计网站页面用什么软件做文章目录 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 字…

文章目录

  • 1 文件的概述
    • 1.1 文件分类(存储介质)
    • 1.2 磁盘文件分类(存储方式)
    • 1.3 二进制文件和文本文件的区别
  • 2 文件缓冲区
  • 3 文件指针
  • 4 文件的API
    • 4.1 打开文件
    • 4.2 关闭文件
    • 4.3 重新定位流
      • 4.3.1 fseek
      • 4.3.2 ftell
      • 4.3.3 rewind
    • 4.4 字符输出到文件
    • 4.5 字符串输出到文件
    • 4.6 字符的输入
    • 4.7 字符串的输入
    • 4.8 二进制流输出
    • 4.9 二进制流输入
  • 5 示例

1 文件的概述

1.1 文件分类(存储介质)

image.png

1.2 磁盘文件分类(存储方式)

  1. 从物理的角度看

任何磁盘文件在物理上都是二进制存储的。


  1. 从逻辑的角度看


1.3 二进制文件和文本文件的区别

image.png
image.png

2 文件缓冲区

image.png

文件缓冲区的作用:提高访问效率,提高磁盘使用寿命。

Linux下缓冲区的4种刷新方式

  1. 行刷新(遇到换行符刷新)。
  2. 满刷新(缓冲区数据放满刷新)。
  3. 强制刷新(使用fflush函数将缓冲区刷新)。
  4. 关闭刷新(关闭文件时将缓冲区数据全部刷新)。

fflush()详解

fflush - 刷新流
对于输出流,fflush()通过流的底层写入函数,强制写入所有的用户空间缓存数据到给定的输出或者更新流。
如果流的参数为NULLfflush()会刷新所有打开的输出流。概要#include <stdio.h>int fflush(FILE *stream);参数stream - 流返回值成功完成后返回 0。否则,返回 EOF 并返回 errno设置以指示错误。

示例:制作模拟时钟

#include <stdio.h>
#include <unistd.h>int 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 文件指针

所有操作文件的库函数都需要借助文件指针操作文件。

  1. 定义文件指针的一般形式为FILE *指针变量标识符,FILE为大写,需包含<stdio.h>
  2. FILE是系统使用typedef定义出来的有关文件信息的一种结构体变量,含有文件名、文件状态和文件当前位置等信息。
  3. 一般情况下,我们操作文件前必须定义一个文件指针来标示我们将要操作的文件。
  4. 在实际编程中,我们无需关心FILE结构体的细节,只需要将文件指针传给io库函数,库函数再通过结构体里的信息对文件进行操作。

对文件操作的步骤

  1. 对文件进行读写等操作之前要打开文件得到文件指针。
  2. 可以通过文件指针对文件进行读写操作。
  3. 读写等操作完毕后,需要关闭文件,关闭文件后,就不能再通过此文件指针操作文件了。

补充:在C语言中有三个特殊的文件指针无需定义,在程序中可以直接使用(每个进程)

  • stdin:标准输入。–> 默认为当前终端(键盘)
  • stdout:标准输出。–> 默认为当前终端(屏幕)
  • stderr:标准错误输出设备。–> 默认为当前终端(屏幕)

4 文件的API

4.1 打开文件

fopen - 流打开函数
fopen() 函数打开名称为路径名指向的字符串的文件并将流与其关联。概要#include <stdio.h>FILE *fopen(const char *pathname, const char *mode);参数pathname - 文件路径名mode - 文件打开模式r    打开文本文件进行读取。该流位于文件开头。r+   打开以进行读取和写入。该流位于文件开头。w    将文件截断为零长度或创建用于写入的文本文件。流是位于文件的开头。w+   打开以进行读取和写入。如果文件不存在则创建,否则它会被截断。该流位于该流的文件开头。a    打开以追加(写入文件末尾)。如果不存在则创建该文件。该流位于文件末尾。a+   打开以进行读取和追加(写入文件末尾)。该文件不存在则创建。输出总是附加到末尾文件。返回值成功完成后,fopen()fdopen()freopen() 返回一个 FILE 指针。否则,返回 NULL 并设置 errno 来指示错误。

image.png

4.2 关闭文件

fclose - 关闭流
fclose() 函数刷新流指向的流(写入任何缓冲的使用 fflush(3)) 输出数据并关闭底层文件描述符。概要#include <stdio.h>int fclose(FILE *stream);参数stream - 文件流返回值成功完成后,返回 0。否则,返回 EOF 并返回 errno设置以指示错误。

4.3 重新定位流

4.3.1 fseek

fseek - 重新定位流
fseek() 函数设置流指向的流的文件位置指示符。新位置(以字节为单位)是通过将偏移字节添加到由whence指定的位置。
如果whence设置为SEEK_SETSEEK_CURSEEK_END,偏移量相对于文件的开头,指示符当前位置或文件结尾。概要#include <stdio.h>int 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.h>long ftell(FILE *stream);参数stream - 文件流返回值成功完成后ftell() 返回当前偏移量。否则,-1返回并设置 errno 以指示错误。

4.3.3 rewind

rewind - 重新定位流
rewind() 函数设置指向的流的文件位置指示器流到文件的开头。
相当于 fseek(stream, 0L, SEEK_SET);概要#include <stdio.h>void rewind(FILE *stream);参数stream - 文件流返回值rewind() 函数不返回任何值。

4.4 字符输出到文件

fputc - 字符输出到文件
fputc() 将字符 c 写入流,转换为无符号字符。概要#include <stdio.h>int fputc(int c, FILE *stream);参数c - 字符stream - 文件流返回值返回以 unsigned char 形式写入的字符;出错时转换为 intEOF

4.5 字符串输出到文件

fputs - 字符串输出到文件
fputs() 将字符串 s 写入流,不带终止空字节 ('\0')。概要#include <stdio.h>int fputs(const char *s, FILE *stream);参数s - 字符串首地址stream - 文件流返回值成功时返回一个非负数,在错误时返回 EOF

4.6 字符的输入

fgetc - 字符的输入
fgetc() 从流中读取下一个字符并将其作为无符号字符返回;
在文件末尾或发生错误时转换为 intEOF。概要#include <stdio.h>int fgetc(FILE *stream);参数stream - 文件流返回值返回作为 unsigned char 转换读取的字符;文件末尾或错误时为 intEOF

4.7 字符串的输入

fgets - 字符串的输入
fgets() 从流中最多读取一个小于 size 的字符并将它们存储到s指向的缓冲区中。
读取在 EOF 或换行符后停止。如果读取换行符,则将其存储到缓冲区中。一个术语空字节('\0')存储在缓冲区中最后一个字符之后。概要#include <stdio.h>char *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.h>size_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.h>size_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.h>int 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

image.png

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

相关文章:

  • 商城网站要多少钱广州seo网络推广员
  • 做优化网站是什么意思app拉新推广平台有哪些
  • 网站分析seo情况最近时事新闻热点事件
  • 专业网站制作公司是如何处理一个优秀网站的加快实施创新驱动发展战略
  • 怎样做网站软件北京seo网站优化培训
  • 综合网站推广的含义网站推广方法
  • 电脑上做网站的软件百度推广后台登录
  • 用动易做的校园网站广州推广系统
  • 大型的营销型网站网络营销经典案例
  • 做网站的云服务器选什么国家中医药管理局
  • 青海省建设厅职业注册官方网站百度首页排名怎么做到
  • 怎么做淘宝网站赚钱吗创建网站步骤
  • 网站栏目结构哪些长沙网动网络科技有限公司
  • 承德建设网站网站怎么优化推广
  • 石家庄网站建设哪家好网站制作流程是什么
  • 无锡网站营销公司哪家好佛山营销型网站建设公司
  • 动漫网站首页设计百度免费打开
  • 园林景观设计案例网站sem竞价外包公司
  • 国外做家谱的网站代写新闻稿
  • 海外推广代理公司搜索引擎优化特点
  • 内蒙古高端网站建设seo外链优化培训
  • 句容论坛二十条优化措施原文
  • 电子商务网站的建设方式谷歌seo网站运营
  • 长景园林这个网站谁做的百度平台推广的营销收费模式
  • wordpress 分表网站优化工具
  • 网站制作 番禺百度自动点击器怎么用
  • 富顺做网站谷歌流量代理代理
  • 离石做网站的公司上海网络推广联盟
  • 做货到付款的购物网站青岛网站制作
  • 做网站用哪个服务器不用备案百度端口开户推广