这篇是个草稿,信息待整理
Prerequisite: File descriptor(FD) 和 File Pointer(FP)
FD 是一个int数,像进程序号一样表示一个被打开的文件。FP是一个C语言指针,本身是一个16进制内存地址。地址指向的是打开的文件。
Open/Close
Int open(const char *pathname, int flags)
flags:
O_RDONLY 只读
O_WRONLY 只写
-RDWT 可读写
返回打开文件的file descriptor
FILE* fopen(const char * path,const char * mode);
返回指向文件的指针
mode:
-r : 只读 -rb: 二进制只读
-w:只写 -wb:二进制写 (若文件已存在,w操作会直接抹去文件之前的内容)
-a:只写 -ab:二进制写(若文件已存在,新的写入会放在文件现有内容之后)
注:以上的这三种模式后加上”+” 则可以把文件作为可读写文件打开,但w仍然会删除文件已有部分,r仍要求文件必须存在。
关闭文件用:
Int close(int fd)
返回0表示成功,-1表示error
int fclose(FILE * stream);
返回0表示成功,EOF表示error
Read/Write:
UNIX函数,这是Unbuffered, 没有缓冲(执行需要读取4次磁盘)返回 File Descriptor (int)。实个System Call
Fread/fwrite:
C库中的函数,通过特殊的顺序调用Read/Write,节约读取次数。返回 FILE*
int fwrite(void* input, size_n size, int num, FILE* ptr):
文件写入,会以size所规定的变量类型进行输入。如char的size=1bit,int的size=4bit。input指向输入值的内存地址,size表示输入的变量类型,num表示输入这种类型变量的数量,ptr指针指向要写入的文件。
void fprintf (FILE* ptr, constant char* direction, object input):
会先用printf的方式处理第二三个输入值,生成一个长的字符串后输入给ptr指向的文件。
本文为个人整理所得,未经允许请勿转载。可以使用外链。