说起标准IO,他是基于ansic标准的。Ansic就是美国国家标准协会制定的一个标准协议,我们常见的就是c89,c99.等等。这个标准说白了就是咱们用的哪些c库。换句话说只要有c库就可以使用标准IO。跟咱们的操作系统没有关系。
要说标准IO,我们要先知道一个结构体,FILE结构体。这个结构体是用来保存文件的信息。一般我们打开文件,内容都保存在FILE结构体中。
在标准IO中我们打开文件用的fopen这个函数,当然也会有其他几个函数,这个我就介绍最常见的。Fopen的原型就是FILE *fopen(const char*path,const char *mode);
他的返回值就是FILE结构体的指针,存放的就是文件的信息。第一个参数就是文件的路径,第二个参数就是权限。
路径:1.绝对路径:就是从跟目录开始到但当前文件的路径,我们敲写pwd命令就是绝对路径。
2.相对路径:就是当前的路径跟你当前的文件所在的路径相同就可以了。
权限:权限大概可以分3类。读,写,追加。
读权限:r 就是read,他的作用就是一以可读的权限打开文件。
他有个特别注意的地方就是文件必须存在,这个很好理解,要是文件
不存在,肯定不能独缺其中的内容的。
R+ 也是读权限,跟r基本上一样,但是他可以同事拥有读写的权限,
因为他有个“+”号
写权限:w write,他的作用就是以可写的权限打开文件。
他要注意的地方就是,要是文件存在,文件的内容就会消失,要是不存
在就会创建文件。
W+ r,r+ 的关系跟w w+的关系是一样的。W+的作用跟w是相同的
就是多了一个读权限。
追加权限:a add 我们说过我们要用w打开文件,文件的内容就消失了,要
是我们想在文件后面接着写内容怎么办,就用“a”。不存在也是创建
文件。当然a是写权限的
A+:a+就是有读写权限的a。
一般的使用就是先定义一个FILE结构体指针,然后用fopen给FILE结构体赋值。
#include
#define N 64
Int main()
{
FILE *fp;
Char buf[N];
If((fp = open(“test.c”,”w”)) == NULL)
{
Perror(“test.c”);
Fprintf(stdout,”open failed:%sn”,strerror);
}
Char *p = “hello”;
Char *p = “wrold”;
Fprintf(fp,”helloworld”);
Sprintf(buf,”%s%s”,p,q);
Fprintf(stdout,”%sn”,buf);
Fclose(fp);
Return 0;
}
如果当前路径下有text.c文件就可以执行上面的函数操作。