linux 系统编程-学习笔记2-文件I/O-open-read
来源:互联网 发布:时时彩后一做号软件 编辑:程序博客网 时间:2024/04/30 01:18
1.open
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
功 能 :以flags 和mode 方式打开一个文件
pathname : 文件名(绝对路径/相对路径)
O_APPEND: 追加
O_TRUNC : 清空
当flags 标志为 O_CREAT 创建一个文件的时候,需要为新创建的文件赋予权限
这个时候,就需要用到mode,也就是open的三个参数的原型。
返回值:
成功=>返回文件描述符
失败=>返回-1
int creat(const char *pathname, mode_t mode);
功能:创建一个文件
再最初open函数没有O_CREAT功能,不能创建文件,所以必须由creat 创建文件之后
再用open打开
ssize_t read(int fd, void *buf, size_t count);
功能:从文件描述符fd 指向的文件中一次读取count个字节的数据到buf为起始地址的缓冲区
fd : 文件描述符(open返回,系统打开....)
buf: 存放数据的缓冲区起始地址
count: 一次最多能读取到的字节数
返回值:
大于0: 返回实际读取到的字节数
等于0: 读取文件结束
小于0: 错误
=============================================================
写文件:
ssize_t write(int fd, const void *buf, size_t count);
功能:把buf缓冲区中的数据一次写入count个字节到fd指向的文件中
fd : 文件描述符
buf: 缓冲区的首地址(数据源)
count: 一次实际写入的字节数
返回值:
成功: 返回写入的实际的字节数
失败:返回-1
==============================================================
关闭文件:
int close(int fd);(可以不用,当一个进程终止时,内核自动关闭它所有打开的文件)
====================================================================
操作文件指针:
off_t lseek(int fd, off_t offset, int whence);
功能:把fd指向的文件的文件指针移动到距whence位置偏移offset的位置
返回值:若成功则返回新的文件偏移量,若出错则返回-1.
The offset is set to offset bytes.
SEEK_CUR : 当前位置
The offset is set to its current location plus offset bytes.
SEEK_END : 文件尾
The offset is set to the size of the file
plus offset bytes.
======================================================================
ssize_t pread(int fd, void *buf, size_t count, off_t offset);
功能:从fd 指向的文件中从偏移offset个字节位置处一次最多读取count个字节到buf中
fd : 文件描述符
buf : 缓冲区(存放数据)
count : 一次最多读取的字节数
offset: 文件指针偏移的位置
返回值:
成功:返回读取到的字节数
失败:-1
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
功能:把buf中的数据一次写count个字节到fd 指向的文件中偏移offset个字节的位置处
fd : 文件描述符
buf : 缓冲区(数据源)
count : 写入的字节数
offset: 文件指针偏移的位置
返回值:
成功:返回写入的字节数
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
功 能 :以flags 和mode 方式打开一个文件
pathname : 文件名(绝对路径/相对路径)
flags : 打开的方式
O_RDONLY: 只读的方式
O_WRONLY: 只写的方式
O_RDWR : 读写的方式
以上三个常量必须指定一个且只能指定一个。以下是可选的:
O_CREAT : 创建文件O_APPEND: 追加
O_TRUNC : 清空
O_EXCL : 如果文件存在,则错误
mode : 文件的权限
open有两种函数原型,两个参数和三个参数
当flags 标志为 O_CREAT 创建一个文件的时候,需要为新创建的文件赋予权限
这个时候,就需要用到mode,也就是open的三个参数的原型。
返回值:
成功=>返回文件描述符
失败=>返回-1
int creat(const char *pathname, mode_t mode);
功能:创建一个文件
再最初open函数没有O_CREAT功能,不能创建文件,所以必须由creat 创建文件之后
再用open打开
creat ===>open
可以用手以下的方式调用open
open(pathname,O_RDWR | O_CREAT | O_TRUNC,mode);
===============================================================================文件I/O
FILE *fp = fopen()
{
int fd;
}
fd是由open返回的文件描述符,其大小由系统自动分配一个未用的最小的文件描述符。文件描述符的大小的范围是0-1023,其中0,1,2分别为标准输入,标准输出和标准错误输出,由系统自动分配。每一个文件描述符对应一个文件表项,文件表项由标志位,inode节点指针以及文件偏移量组成,每个inode节点又指向磁盘的一个扇区。
ssize_t read(int fd, void *buf, size_t count);
功能:从文件描述符fd 指向的文件中一次读取count个字节的数据到buf为起始地址的缓冲区
fd : 文件描述符(open返回,系统打开....)
buf: 存放数据的缓冲区起始地址
count: 一次最多能读取到的字节数
返回值:
大于0: 返回实际读取到的字节数
等于0: 读取文件结束
小于0: 错误
=============================================================
写文件:
ssize_t write(int fd, const void *buf, size_t count);
功能:把buf缓冲区中的数据一次写入count个字节到fd指向的文件中
fd : 文件描述符
buf: 缓冲区的首地址(数据源)
count: 一次实际写入的字节数
返回值:
成功: 返回写入的实际的字节数
失败:返回-1
==============================================================
关闭文件:
int close(int fd);(可以不用,当一个进程终止时,内核自动关闭它所有打开的文件)
====================================================================
操作文件指针:
off_t lseek(int fd, off_t offset, int whence);
功能:把fd指向的文件的文件指针移动到距whence位置偏移offset的位置
返回值:若成功则返回新的文件偏移量,若出错则返回-1.
whence:
SEEK_SET : 文件头The offset is set to offset bytes.
SEEK_CUR : 当前位置
The offset is set to its current location plus offset bytes.
SEEK_END : 文件尾
The offset is set to the size of the file
plus offset bytes.
======================================================================
ssize_t pread(int fd, void *buf, size_t count, off_t offset);
功能:从fd 指向的文件中从偏移offset个字节位置处一次最多读取count个字节到buf中
fd : 文件描述符
buf : 缓冲区(存放数据)
count : 一次最多读取的字节数
offset: 文件指针偏移的位置
返回值:
成功:返回读取到的字节数
失败:-1
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
功能:把buf中的数据一次写count个字节到fd 指向的文件中偏移offset个字节的位置处
fd : 文件描述符
buf : 缓冲区(数据源)
count : 写入的字节数
offset: 文件指针偏移的位置
返回值:
成功:返回写入的字节数
失败:-1
======================================================================
0 0
- linux 系统编程-学习笔记2-文件I/O-open-read
- linux文件I/O编程 (open、read、write、lseek、close)
- Linux系统学习笔记:文件I/O
- 文件I/O编程 (open、read、write、lseek、close)
- 嵌入式linux文件I/O编程 (open、read、write、lseek、close)
- 1.Linux应用编程---文件I/O(open、read、write、lseek、close)
- 文件I/O编程学习笔记一(基于linux系统的文件编程)
- Linux系统编程学习笔记(1)-文件的I/O操作
- Linux 系统编程学习-文件I/O操作
- Linux系统文件I/O编程(三)---I/O多路复用
- Linux系统文件I/O编程(三)---I/O多路复用
- Linux系统文件I/O编程(一)---open()等基本函数
- Linux系统文件I/O编程(一)---open()等基本函数
- Linux系统文件I/O编程(一)---open()等基本函数
- Linux系统文件I/O编程(一)---open()等基本函数
- Linux系统文件I/O编程(一)---open()等基本函数
- linux系统编程之文件I/O
- Linux系统学习笔记:高级I/O
- 淘宝传奇工程师多隆
- 谷歌浏览器开发工具使用教程
- 有关C#+ASP.NET中用户控件(webusercontrol)使用问题2则
- 数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现
- Linux基础学习(二)配置yum源以及硬盘分区管理
- linux 系统编程-学习笔记2-文件I/O-open-read
- ORA-12012: error on auto execute of job "SYS"."BSLN_MAINTAIN_STATS_JOB"
- json数组对象和对象数组详细介绍
- 基于RBAC的Easyui树形权限菜单的实现原理
- struts2中的constant配置详解
- 黑马程序员——MAC系统快捷键汇总
- alias
- nohub 管理后台任务
- 不容错过的iOS 8的导航交互