文件IO

作者: dawn晓东 | 来源:发表于2019-01-15 10:27 被阅读0次
  • open函数
    函数原型:

    #include<fcntl.h>
    int open (const char *pathname ,int  flag ,  . . . /* mode_t  mode */ )
    

    需要注意的是,flag参数主要有下面的几个选择:
    1、O_RDONLY 、 只读 | O_WRONLY 只写 | O_RDWR 读写打开;
    2、O_APPEND 追加的方式打开;
    3、O_CREAT 文件不存在的话,先创建文件 ,需要第三个参数指定文件的访问权限;
    4、O_EXCL flag参数值为 O_CREAT | O_EXCL 时,文件已经存在会报错,可以使用此来判断文件是不是存在;
    5、其他的不太常用;

  • creat函数
    函数原型:

     #include<fcntl.h>
    int creat(const char * pathname ,mode_t mode);
    

    此函数等效于 :
    open(pathname, O_WRONLY | O_CREAT | O_TRUNC , mode)
    表示打开的文件描述只能写 ;

  • close 函数

      #include<unistd.h>
     int close(int  fd);
    

    关闭文件描述符

  • lseek函数
    函数原型 :

    #include <unistd.h>
     off_t lseek(int fd , off_t offset ,int whence);
    

    lseek函数可以显示地为打开的文件设置其偏移量。
    函数参数(whence):
    1、SEEK_SET 表示设置文件的偏移为距文件开始处offset个字节;
    2、SEEK_CUR表示设置文件的偏移为距当前位置处offset个字节;
    3、SEEK_END表示设置文件的偏移为距文件结尾处offset个字节;
    成功执行后,返回的是新的文件偏移;

  • read 、 write函数
    函数原型 :

     #include <unistd.h>
     ssize_t read(int fd , void * buf , size_t nbytes);
     ssize_t write(int fd,const void * buf ,size_t nbytes);
    
  • 原子操作函数 pread 、 pwrite函数
    函数原型:

    #include <unistd.h>
    ssize_t pread(int fd , void * buf ,size_t nbytes , off_t offset);
    ssize_t pwrite(int fd ,const void  * buf ,size_t nbytes ,off_t offset);
    

    上面两个函数相当于分别调用了lseek函数 和read 、 write函数,但是同时也有下列重要的区别:

    • 调用pread、pwrite时,无法中断其定位和读操作;
    • 不更新文件指针;
  • dup 、 dup2函数
    函数原型:

     #include <unistd.h>
      int dup(int fd) ; // 返回一个新的文件描述符 ,表示和fd打开同一个文件
      int dup2(int fd1,fd2); // 指定文件描述值fd2,表示和fd1打开的是同一个文件描述符,假设fd2已达开,则先关闭。
    
  • sync 、fsync 、fdatasync函数
    函数用处:
    更新缓冲,确保磁盘上实际的问价 系统与缓冲区高速缓存中内容的一致性。
    函数原型:

      #include <unistd.h>
      void sync(void); // 将所有修改过的块缓冲区排入写队列,就返回,并不等待实际的写操作;
      int fsync(int fd); // 只对fd文件指定的单一文件起作用,并且等待写操作完成之后结束;
      int fdatasync(int fd); //只对文件的数据部分。而除数据外,fsync还会更新文件属性。
    

相关文章

  • Linux 文件IO 和 标准IO

    [TOC] Linux 文件IO 和 标准IO Linux 文件IO Linux中做文件IO最常用到的5个函数是:...

  • 文件IO

    1.open/close 函数原型:int open(const char *pathname,int flags...

  • 文件IO

    读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符: 标示符'r...

  • 文件IO

  • 文件IO

    2016-01-29 文件IO 大多数文件io只需要用到5个函数 open read write lseek cl...

  • 文件IO

    python文件打开方法 open(name,[,mode[buf]]) 文件读取 read([size]) si...

  • 文件IO

    open函数函数原型:#includeint open (const char *pathnam...

  • 文件io

    展开由于该知识点涉及到I/O操作,因此,在这里简单的对I/O操作做简单的说明。 冯诺依曼体系结构中,将计算机分为运...

  • 文件 io

    文件操作 io读操作 io写操作 复制文件 断点续传 bufio包 func NewReader(rd io.Re...

  • python文件处理、路径处理、序列化和反序列化

    文件IO常用操作 一般说IO操作,指的是文件IO,如果指的是网络IO,会直接说。 把文件存储到磁盘上的这个过程,叫...

网友评论

      本文标题:文件IO

      本文链接:https://www.haomeiwen.com/subject/rieedqtx.html