在linux中,I/O包括系统I/O和标准I/O (I/O是实现一切的基础)两者可用时,通常使用标准I/O,因为移植性更好
函数包括的头文件以及函数原型
以第一个函数为例:
文件返回的是一个FILE的指针,而FILE这个结构体位于堆上
path:为文件的路径
mode:操作方式
const:告诉用户,这是一个常量,不会因为程序的运行而改变
由图可知,文件的操作方式有以上几种:
①:r:以读方式, 定位于文件的开头
②:r+:以读和写的方式:定位于文件的开头
③:w:以写的方式,当文件有内容就清空内容进行写入,没有文件就创建文件,定位于文件的开头
④:w+:以读和写的方式,当文件有内容就清空内容进行写入,没有文件就创建文件,读的时候定位于文件的开头,
pathname:要打开的文件名(含路径,缺省为当前路径)
⑤:a:以追加内容的方式:在文件的末尾追加内容,定位于文件的末尾,没有文件就创建文件
⑥:a+:以追加内容和读的方式:以追加内容的方式:在文件的末尾追加内容,定位于文件的末尾,读操作时,定位于文件的开头,没有文件就创建文件
文件操作后,如果成功操作,无返回,失败操作,会返回空指针和错误码(errno)
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
int main()
{
FILE *p;
p = fopen("./temp","w+");
if(NULL==p)
{
//fprintf(stderr,"fopen() failed! errno=%d\n",errno);
//perror("fopen()");
fprintf(stderr,"fopen(): %s\n",strerror(errno));
exit(1);
}
puts("OK");
flcose();
exit(0);
}
可以用perror()或者strerror()返回错误信息