嵌入式每日学习心得2017.07.28

来源:互联网 发布:东至75网络雇凶杀人案 编辑:程序博客网 时间:2024/06/06 08:59
文件:有限数据的集合。
   TXT文档:有限文本的集合
   exe程序:有限指令的集合。
内存:当电脑关机时,内存会清空。
文件:为了需要长期保存信息,一般文件存储到外储(U盘,光盘,硬盘。。。)


文件构成:文件的位置(Linux: /home/LF/Desktop/a.txt   Winows: C:\User\Desktop\a.txt)+存储空间


文件的划分:
数据类型:   文本文件      二进制文件


C语言文件I/O:
struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
        };
typedef struct _iobuf FILE;
1、打开  FILE* fopen(“path”,“操作的方式”)    打开时,一定要指定操作方式
操作方式: 
文本文件 
 只读   r  如果文件不存在,返回NULL
 只写: w  如果文件不存在,则新建  如果存在,则截断为0。
 追加: a+ 打开文件时,文件的读写指向文件的末尾处。 
 可读写 r+  w+    r+可读写,但操作时与r类似(如果文件不存在,则返回NULL) 
  w+可读写,如果文件不存在,则新建  如果存在,则截断为0。
        二进制Binary
只读   rb (类似r)
只写   wb (类似w)
追加   ab
可读写 rb+  wb+

2、操作函数:
读:
文本函数


fputc()  打印一个字符
fputs()  打印一行
fprintf();格式打印
feof();//用于判断当前读写位置是否批向文件的末尾处
fprintf();
fscanf();

二进制函数
fread(void*buffer,size,num)  
fwrite(void*buffer,size,num)    写入的字节:size*num


 返回值:返回实际读写的次数
fseek(FILE*,int offset,int whence);
offset:位移量(>0向右移动    <0向左移动)
whence:位置(开头SEEK_SET,当前SEEK_CUR,结尾SEEK_END)
注:每以打开时,都有一个文件的读写位置。每读或写n个Byte时,文件的读写位置就会移动此n+1的位置。


3关闭---正常关闭时,系统会将缓冲区的数据正常写放或读取
fclose(FILE*);
 abcdefgh
 系统  高速缓冲区《abcdefhg》    硬盘中




文本文件:存储的文件中的数据都是以对应字符的ASCII值存储到硬盘中
#define EOF -1
文件(ABCDE):《---》内存中 [?01000001?][01000010][01000011][01000100][01000101][-1]
二进制文件: short a=10(内存)  0000000000001010 <-->文件中:0000000000001010 
二进制文件:
原创粉丝点击