文件I/O操作之文件的打开,创建,关闭和定位-基于Linux系统文件IO
2014-09-02 22:18
477 查看
1.
打开文件
文件描述符从3开始(0,1,2被标准IO占用),依次被分配给打开的文件
flags取值:
mode取值
组合mode
示例:
打开文件
2.
创建文件
若成功,返回以只写方式打开的文件描述符,否则返回-1
注意:creat等效于
创建文件并打开的新方式
3.
关闭文件
fd是文件描述符,成功返回0,出错返回-1
4.
定位文件
offset时定位的位移量大小,与whence参数有关
后两个参数允许取offset负值
可使用此方法获取文件当前位移量
也可时使用此方法测试文件是否能被设置偏移量
打开文件
#include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> int open(const char *pathname,int flag); //打开一个现有的文件 int open(const char *pathname,int flags,mode_t mode); //若文件不存在,则先创建它 //成功则返回文件描述副,否则返回-1 //pathname为文件的相对或绝对路径名
文件描述符从3开始(0,1,2被标准IO占用),依次被分配给打开的文件
flags取值:
O_RDONLY; //只读 O_WRONLY; //只写 O_RDWR; //读写 O_CREAT; O_EXCL; O_NOCTTY; O_TRUNG; O_APPEND; O_NONBOLCK; O_NONELAY; O_SYNC;
mode取值
S_ISUID; S_ISGID; S_SVTX; S_IRUSR; S_IWUSR; S_IXUSR; S_IRGRP; S_IWGRP; S_IXGRP; S_IROTH; S_IWOTH; S_IXOTH;
组合mode
S_IRWXU; S_IRWXG; S_IRWXO;
示例:
打开文件
#include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #define FLAGS O_WRONLY|O_CREAT|O_TRUNC #define MODES S_IRWXU|S_IXGRP|S_IRGRP|S_IROTH|S_IXOTH int main(void) { const char *pathname; int fd; char pn[30]; printf("please input the pathname <30 strings:\n"); scanf("%s",pn); pathname=pn; if((fd=open(pathname,FLAGS,MODES))==-1) { printf("error can't open file! \n"); exit(255); } printf("OK ,file has been open!\n"); printf("fd=%d\n",fd); return 0; }
2.
创建文件
#include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> int creat(const char *pathname,mode_t mode);
若成功,返回以只写方式打开的文件描述符,否则返回-1
注意:creat等效于
open(pathname,O_WRONLY|O_CREAT|O_TRUNC,mode);
创建文件并打开的新方式
open(pathname,O_RDWR|O_CREAT|O_TRUNC,mode);
3.
关闭文件
#include<unistd.h> int close(int fd);
fd是文件描述符,成功返回0,出错返回-1
4.
定位文件
#include<sys/types.h> #include<unistd.h> off_t lseek(int fd,off_t offset,int whence);
offset时定位的位移量大小,与whence参数有关
SEEK_SET; //位移量就是据文件开头的offset字节 SEEK_CUR; //距当前位置offset字节 SEEK_END; //距文件尾offset字节
后两个参数允许取offset负值
可使用此方法获取文件当前位移量
off_t offset; offset=lseek(fd,0,SEEK_CUR);
也可时使用此方法测试文件是否能被设置偏移量
相关文章推荐
- 文件I/O操作之文件的读写-基于Linux系统文件IO
- 19_Linux文件IO的打开和关闭--open/close
- linux下文件的创建,打开与关闭
- (文件系统学习二) 文件的创建、打开与关闭
- Linux 下磁盘分区和创建文件系统(基于Ubuntu平台)
- 系统调用-文件访问 创建、打开、关闭、读、写
- 系统调用-文件访问 创建、打开、关闭、读、写
- linux系统编程之文件与I/O(一):文件的打开关闭
- linux下C语言文件的创建打开和关闭
- linux 学习笔记(三):open、creat、close 函数的使用,文件的创建、打开与关闭
- [转] 基于Linux的集群系统的文件系统介绍
- Linux 创建文件系统及挂载文件系统详解二
- 基于S3C2440的Linux内核移植和yaffs2文件系统制作
- 基于Linux的嵌入式文件系统构建与设计
- LINUX系统打开的最大文件数限制
- Linux系统中打开文件数量的查看方法
- Linux 创建文件系统及挂载文件系统流程详解
- 修改Linux系统最大打开文件数
- linux创建文件时添加系统时间
- Linux 创建文件系统及挂载文件系统流程详解