open+errno+write+lseek
来源:互联网 发布:python 发送邮件附件 编辑:程序博客网 时间:2024/06/05 09:34
系统IO:比较多用来控制底层
1,open:
打开一个文件,返回一个文件描述符(钥匙)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
pathname:打开文件的路径
flags:如何操作文件
O_APPEND:追加的形式去打开文件(文件操作位置定位到文件的最末开始操作数据)
O_CREAT:创建文件,结合mode值使用(最后文件产生的权限通过mode&~umask得出)
文件不存在时创建,存在则忽略这个设置
O_EXCL:结合创建文件使用,如果文件存在则open函数返回失败(-1)
O_NONBLOCK:不阻塞的操作文件
O_SYNC:直接操作数据块(同步更新数据块)
O_TRUNC:将打开的文件清零
mode:权限设置值(八进制数),决定创建文件的权限
返回值:
成功返回一个大于或等于0的数字(文件描述符),失败则返回-1,并且将错误信息置位到errno这个变量中
ps:1,open函数一般返回值是大于2的值:
0:系统标准输入
1:系统标准输出
2:系统标准出错
2,open函数默认打开的文件都是将操作位置定位在文件开头,如果你想后面添加,需要加上追加模式(O_APPEND)
2,errno:
这是一个系统的错误全局变量,如果系统调用当中出错了,内部会自动往里面置一个错误的数字,你可以通过perror,strerror获取错误的信息
3,close:关闭一个文件描述符
#include <unistd.h>
int close(int fd);
fd:想要关闭的文件描述符
返回值:成功返回0,失败返回-1
4,read:读取指定文件的内容
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
fd:想读取那个文件的数据
buf:将数据读取到哪里去
count:想要读取多大,以字节为单位
返回值:成功返回一个大于或等于0的数字,代表成功读取了几个字节,如果等于0,证明读取到了文件的底部,失败则返回-1
5,write:写入内容到指定的文件当中
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
fd:想写入哪个文件
buf:想要写入的数据存放在哪
count:想要写入多大的数据,以字节为单位
返回值:成功返回一个大于或等于0的数字,代表成功写入了几个字节,如果等于0,证明没有成功将数据写入,失败则返回-1
6,lseek:重置文件操作位置
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
fd:重置那个文件
offset:偏移多少个字节
whence:从哪里开始偏移
返回值:成功返回从文件开头到你重新定位之后的位置,失败返回-1
1,open:
打开一个文件,返回一个文件描述符(钥匙)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
pathname:打开文件的路径
flags:如何操作文件
O_APPEND:追加的形式去打开文件(文件操作位置定位到文件的最末开始操作数据)
O_CREAT:创建文件,结合mode值使用(最后文件产生的权限通过mode&~umask得出)
文件不存在时创建,存在则忽略这个设置
O_EXCL:结合创建文件使用,如果文件存在则open函数返回失败(-1)
O_NONBLOCK:不阻塞的操作文件
O_SYNC:直接操作数据块(同步更新数据块)
O_TRUNC:将打开的文件清零
mode:权限设置值(八进制数),决定创建文件的权限
返回值:
成功返回一个大于或等于0的数字(文件描述符),失败则返回-1,并且将错误信息置位到errno这个变量中
ps:1,open函数一般返回值是大于2的值:
0:系统标准输入
1:系统标准输出
2:系统标准出错
2,open函数默认打开的文件都是将操作位置定位在文件开头,如果你想后面添加,需要加上追加模式(O_APPEND)
2,errno:
这是一个系统的错误全局变量,如果系统调用当中出错了,内部会自动往里面置一个错误的数字,你可以通过perror,strerror获取错误的信息
3,close:关闭一个文件描述符
#include <unistd.h>
int close(int fd);
fd:想要关闭的文件描述符
返回值:成功返回0,失败返回-1
4,read:读取指定文件的内容
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
fd:想读取那个文件的数据
buf:将数据读取到哪里去
count:想要读取多大,以字节为单位
返回值:成功返回一个大于或等于0的数字,代表成功读取了几个字节,如果等于0,证明读取到了文件的底部,失败则返回-1
5,write:写入内容到指定的文件当中
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
fd:想写入哪个文件
buf:想要写入的数据存放在哪
count:想要写入多大的数据,以字节为单位
返回值:成功返回一个大于或等于0的数字,代表成功写入了几个字节,如果等于0,证明没有成功将数据写入,失败则返回-1
6,lseek:重置文件操作位置
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
fd:重置那个文件
offset:偏移多少个字节
whence:从哪里开始偏移
返回值:成功返回从文件开头到你重新定位之后的位置,失败返回-1
0 0
- open+errno+write+lseek
- linux open read write lseek close
- 文件I/O编程 (open、read、write、lseek、close)
- open read write fcntl lseek等函数的使用整理:
- open read write fcntl lseek等函数的使用整理:
- Linux基础编程-文件操作open,lseek,read,write,close
- Linux基础编程-文件操作open,lseek,read,write,close
- linux下的open()read()write()close()lseek()函数
- linux文件I/O编程 (open、read、write、lseek、close)
- Linux 文件IO函数(open/close/read/write/lseek)
- Linux 文件描述符(open,read,write,lseek,close)
- Linux 文件IO — open、read、write 、lseek
- Linux基础编程-文件操作open,lseek,read,write,close
- linux文件操作open close read write lseek
- Linux 文件操作 open,lseek,read,write,close
- Open、Read、Write、Lseek、Close、Create、Delete、chdir系统调用
- 文件I/O函数(open,read,write,lseek,close)
- Linux&C open creat read write lseek 函数用法总结
- 安装串口驱动+secureCRT软件+让你的程序放到板子上面去跑
- Android悬浮窗的实现--可以置顶,可以设置优先级的view
- 1052. Linked List Sorting (25)
- 系统烧写文档
- activity 中的 onSaveInstanceState方法的调用时机
- open+errno+write+lseek
- java网络爬虫连接超时解决[实战程序]
- 二分法入门——POJ1064 ,POJ2456 ,POJ3111
- 构建Maven项目自动下载jar包
- Linux常用指令
- C++之静态函数详解
- pat-basic-1038-c语言
- CSU-1003
- 高中OJ3503. 【NOIP2013模拟11.4B组】粉刷(paint)