Linux-文件I/O
来源:互联网 发布:网络挖掘机程式 编辑:程序博客网 时间:2024/05/28 06:06
open()
需要包含的头文件:
<sys/types.h> <sys/stat.h> <sys/fcntl.h>
格式:
int open(const str *pathname, int oflag, [..., mode_t mode])
pathname:打开或创建文件的全路径名;
oflag:函数的多个处理方式,详情见下表;
mode_t:用于创建文件时设置文件权限。
oflag参数说明:
O_RDONLY只读模式O_WRONLY只写模式O_RDWR读写模式O_APPEND追加到文件尾O_CREATE文件不存在时创建,有次参数的时候open函数要设置第三个参数,为文件添加权限O_EXCL如果同时指定O_CREATE而该文件又是存在的,报错。也可以测试一个文件是否存在,不存在则报错O_TRUNC如果此文件存在,并且以只读或只写模式打开,则将此文件截断为0O_SYNC使每次write操作都等到物理I/O操作完成示例:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <fnctl.h>#include <sys/stat.h>#define FILE_PATH "./test.txt"int main(void){ int fd; if((fd = open(FILE_PATH, O_RDWR | O_CREAT | O_EXCL, 0666)) < 0) { printf("create error\n"); exit(-1); } else { printf("create success\n"); } return 0;}
如果当前目录下存在text.txt,屏幕上就会打印”create error”,否则创建该文件,并打印”create success”。
read
需要包含的头文件:
<unistd.h>
函数原型:
ssize_t read(int fd, viod * buf, size_t count)
功能:从打开的文件中读取数据位置。
返回值:实际读到的字节数;已读到文件尾返回0,出错返回-1,ssize_t是系统头文件中用typedef定义的数据类型,相当于signed int。
参数说明:
fd:要读取的文件的描述符;
buf:得到的数据在内存中的位置的首地址;
count:期望本次能读取到的最大字节数。size_t是系统头文件中用typedef定义的数据类型,相当于unsigned int。
write
需要包含的头文件:
<unistd.h>
函数原型:
ssize_t write(int fd, const void * buf, size_t count)
功能:向打开的文件写数据。
返回值:写入成功返回世界写入的字节数,出错返回-1。(注意:返回-1的常见原因是:磁盘空间已满,超过了一个给定进程的文件长度。)
参数:
fd:要写入文件的文件描述符;
buf:要写入文件的数据在内存中存放位置的首地址;
count:期望写入的数据的最大字节数
read、write使用示例:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(void){ char buf[100]; int num=0; //获取键盘输入 if((num = read(STDIN_FILENO, buf, 10)) == -1) { printf("read error"); error(-1); } else { //将键盘输入又输出到屏幕上 write(STDOUT_FILENO, buf, num); } return 0;}
结果:
close
需要包含的头文件:
unistd.h
函数原型:
int close(int filedes)
功能:关闭一个打开的文件(注:当一个进程中止的时候,它所以打开的文件都是由内核自动关闭的,很多功能都已使用这一功能却没有显式地调用close。但是作为一个优秀的程序员应该显式地关闭不再使用的文件)。
参数:需要关闭文件的文件描述符。
lseek
需要包含的头文件:
sys/types.h unistd.h
函数原型:
off_t lseek(int filesdes, off_t offset, int whence)
功能:设置文件内容读写位置。
返回值:成功返回新的文件位移,出错时返回-1;同样的,off_t是系统头文件定义的数据类型,相当于signed int。
参数whence:
- Linux文件I/O
- linux 文件I/O
- Linux文件I/O
- Linux----文件I/O
- LINUX 文件I/O
- linux文件I/O
- Linux -- 文件I/O
- Linux 文件I/O
- Linux 文件I/O
- Linux-文件I/O
- Linux文件I/O操作
- linux 文件I/O 编程
- linux 文件I/O API
- Linux 文件I/O编程
- linux文件I/O编程
- linux 文件I/O 入门
- 1.linux文件I/O
- Linux文件I/O之一
- 景甜华服下套秋裤被赞,身为程序猿的你靠什么熬过寒冬?
- 数据库高速索引Sphinx安装配置教程
- 资深java软件工程师给大家的忠告
- leetcode 523. Continuous Subarray Sum 560. Subarray Sum Equals K
- oracle left join 查询第一条记录
- Linux-文件I/O
- Dcloud开发引用第三方sdk的app小程序扫盲---连接wifi
- java8之方法引用
- 百分百屏幕适配(性能略低)
- 高效sql性能优化极简教程
- mysql在linux下安装
- EMNLP 2017 accepted papers
- ASP.NET FileUpload以及文件下载和Repeater控件显示
- PHPとSQLserver接続