Linux下I/O流的打开与关闭

1.流的打开与关闭

       FILE结构体又被称为流。  流的打开是使用函数FILE *fopen (const char *path, const char *mode);来实现的,path指的是打开流资源路径,mode指的是对流操作的模式。函数执行成功时返回流指针,失败时返回NULL。参数mode的取值有六种,代表对流的不同操作模式。 

Linux下I/O流的打开与关闭

*当给定”b”参数时,表示以二进制方式打开文件,但Linux下忽略该参数

       当使用fopen对文件进行操作时创建了一个文件,创建的文件访问权限是0666(rw-rw-rw-),Linux系统中umask设定会影响文件的访问权限,其规则为(0666 & ~umask)用户可以通过umask函数修改相关设定如果希望umask不影响文件访问权限,应该将umask的值设置为0;
 
       流的关闭是使用函数int fclose(FILE *stream);stream指定的是要关闭的流,当不再需要对一个流进行操作的时候,要及时的将流关闭。流关闭时自动刷新缓冲中的数据并释放缓冲区 。当一个程序正常终止时,所有打开的流都会被关闭。流一旦关闭后就不能执行任何操作。
 
       对流进行打开或关闭时,有时会遇到错误,对错误信息的处理主要是通过错误信息处理机制,前面说过,标准错误流使用的是无缓冲机制,确保能及时的获得错误信息。在头文件errnfuo.h中记录了各种原因造成的错误的错误号,每个错误号对应了自己的错误信息。函数perror能够输出错误信息,当知道错误号时,使用函数strerror也能输出错误信息。至于变量errno的值,当程序出现错误的时候,系统会自动给errno赋错误号。
Linux下I/O流的打开与关闭