Linux 系统 I/O编程-----不带缓存的I/O操作
来源:互联网 发布:淘宝发货之后怎么修改 编辑:程序博客网 时间:2024/06/05 05:58
Linux的I/O操作分为:
- 不带缓存的I/O操作(read(),write(),open(),lseek(),close())。
- 标准(带缓存)的I/O操作:(fgets(),fread(),fwrite()).
文件描述符:
首先,在linux中对目录和设备都等同与于文件操作,LINUX中的文件主要分为:普通文件,目录文件,链接文件和设备文件,那么系统是怎么区分和引用特定的文件的呢?
文件描述符---对LINUX而言,所有对设备和文件的操作都通过使用文件描述符进行的,在open已经存在的文件或者creat一个新的文件时,内核就会向进程返回一个文件描述符,以后要对该文件的操作都可以通过使用该文件描述符(将文件描述符做为参数传递给相应的读(read(),写write()函数)来进行.
在lINUX系统中一个进程启动时都会打开3个文件:标准输入,标准输出,标准出错处理,分别对应文件描述符为0,1,2(宏替换STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO)
不带缓存操作的I/O操作函数:
1 open函数
功能:打开一个已经存在的文件或者创建一个新的文件. 函数原型如下
#include <fcntl.h>- int open(const char *pathname,int oflag,mode_t mode);
- 返回值:
- 成功:返回文件描述符
- 出错:返回-1
- pathname:要打开或者要创建的文件名,
- oflag: O_RDONLY 只读打开
- O_WRONLY 只写打开
- O_RDWR 读写方式打开
- 以上三个常量必须指定一个且只能指定一个
- O_APPEND 每次写时都追加到文件的未端
- O_CREAT 若打开的文件不存在,则创建一个新文件,使用这个选项时,第三个参数mode指定创建新文件时的文件权限
- LINUX的文件权限: r 可读取 w可写入 x可执行 -无权限
- 文件权限的表示: 10个字符表示.如drwx------
- 第一位:表示文件的类型
- 第二位到第四位:表示文件所有者的访问权限
- 第五位到第七位:表示文件所有者同组用户访问的权限
- 第八位到第十位:表示其它用户的访问权限
新建文件的默认权限=新建文件的约定权限(linux 文件的约定权限是0666)-umask表示的权限
新建目录的默认权限=新建目录的约定权限(LINUX目录的约定权限是0777) - umask表示的权限
O_TRUNC 如果文件存在,而且为只写或者读写的方式打开,则将文件的长度截短为0
O_NOCTTY 如果pathname指的是终端设备 则不将这个设备作为此进程的控制终端
O_NONBLOCK 如果pathname指的是一个FIFO,一个块特殊文件或者一个字符特殊文件,则此选项为文件的本次打开操作和后续的I/O操作设置非阻塞模式
O_DSYNC
O_RSYNC
O_SYNC
- Linux 系统 I/O编程-----不带缓存的I/O操作
- Linux 系统 I/O编程-----不带缓存的I/O操作
- linux不带缓存的I/O和带缓存的I/O
- 不带缓存操作的I/O操作(1)
- 不带缓存的文件I/O操作 open/close
- 不带缓存的文件I/O操作 read/write
- 不带缓存的文件I/O操作 fcntl
- 不带缓存的I/O操作(2)
- 不带缓存的文件I/O操作
- Linux下的文件操作(不带缓存的I/O操作)
- 带缓存的I/O操作
- 带缓存的I/O操作
- 带缓存的I/O操作
- 0117 带缓存的I/O操作
- unix系统中带缓存的I/O和不带缓存的I/O的区别
- unix系统中带缓存的I/O和不带缓存的I/O的区别
- 带缓存的I/O和不带缓存的I/O的区别
- 带缓存的I/O和不带缓存的I/O的区别
- linux下的几种进程间通信方式的特点
- @SuppressWarnings 注解详述
- InteractionMnager(交互管理器)
- VS/MFC实例:对话框---创建对话框模板和修改对话框属性
- NP-完全问题的证明
- Linux 系统 I/O编程-----不带缓存的I/O操作
- 市场上终于出现了一款阿里云虚拟主机代理平台(源码免费下载)
- 【MySql】MySql之序列
- http://blog.csdn.net/evankaka/article/details/45155047
- Centos 添加163yum源
- 【MySql】MySql之导入导出
- linux下升级gcc的方法
- Tomcat----JVM调优和线程池优化
- java客户端与服务端建立连接 线程 ServerSocket