文件操作的函数

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);//这种原型既可以打开存在的文件也可以打开不存在的文件

参数:

  pathname:文件名

  flags:O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(可读可写)、O_APPEND(追加)、C_CREAT(创建)、O_EXCL、O_TRUNC(截断)、O_NONBLOCK(非阻塞)

  open("./log.txt",O_WRONLY | C_CREAT | O_TRUNC);//文件不存在就创建文件且把文件清空

返回值:

  成功返回fd

  失败返回-1

 

2. close

头文件:

  #include <unistd.h>

原型:

  int close(int fd)

参数:

  fd:文件描述符

返回值:

  成功返回0

  失败返回-1

 

3. read

头文件:

  #include <unistd.h>

原型:

  ssize_t read(int fd, void* buf, size_t count);

参数:

  fd:文件描述符

  buf:存放从文件读取内容的缓冲区

  count:想读的字节数

返回值:

  0:文件已经读完

  >0:从文件读取到的字节数(实际读到的字节数)

  -1 :失败

 

2. write

头文件:

  #include <unistd.h>

原型:

  ssize_t write(int fd, const void *buf, size_t count)

参数:

  fd:文件描述符

  buf:要写入文件的缓冲区

  count:想写入文件的字节数

返回值:

  >0:实际写入的字节数(想写入的字节数必须和实际写入的字节数相等才能算写入成功)

  -1:失败

 

2. lseek(改变文件指针位置)

头文件:

  #include <sys/types.h>
  #include <unistd.h>

原型:

  off_t lseek(int fd, off_t offset, int whence)  off_t是Long型

参数:

  fd:文件描述符

  offset:相对于当前文件指针的偏移量

  whence:文件指针当前的位置

    SEEK_SET 文件指针指向文件开头位置     如:lseek(fd, 0, SEEK_SET)//文件指针指向文件开头且偏移量为0,即就是文件开头,下次对文件的操作就从开头开始操作
    SEEK_CUR 文件指针指向当前的位置        如:lseek(fd, -1, SEEK_CUR)//当前的文件指针向前移动1,下次如果往文件里写,将覆盖掉一字节
    SEEK_END 文件指针指向文件结尾的位置  如:lseek(fd, 0, SEEK_END)//文件指针指向文件结尾且偏移量为0,即就是文件尾部,也就是文件大小

返回值:

  当前文件指针相对文件开头的偏移量

  -1:失败

posted @ 2023-02-15 10:23  踏浪而来的人  阅读(33)  评论(0编辑  收藏  举报