文件IO

文件IO

1.函数open和openat

函数原型描述

SYNOPSIS
       #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);

       int openat(int dirfd, const char *pathname, int flags);
       int openat(int dirfd, const char *pathname, int flags, mode_t mode);

       /* Documented separately, in openat2(2): */
       int openat2(int dirfd, const char *pathname,
                   const struct open_how *how, size_t size);
       
错误代码 说明
O_RDONLY 只读方式打开文件
O_WRONLY 只写方式打开文件
O_RDWR 读写方式打开文件
O_EXEC 只执行方式打开文件
O_SEARCH 只搜索方式打开文件
O_APPEND 追加方式打开文件
O_CREAT 如果文件不存在,则创建文件
O_DIRECTORY 如果文件不是目录,则失败
O_EXCL 如果文件已存在,则失败
O_NOCTTY 不将文件分配为控制终端

img

  1. open()函数用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。
  2. close()函数用于关闭一个被打开的文件。当一个进程终止时,所有被它打开的文件都由内核自动关闭,很多程序都使用这一功能而不显示地关闭一个文件。
  3. read()函数用于将从指定的文件描述符中读出的数据放到缓存区中,并返回实际读入的字节数。若返回 0,则表示没有数据可读,即已达到文件尾。读操作从文件的当前指针位置开始。当从终端设备文件中读出数据时,通常一次最多读一行。
  4. write()函数用于向打开的文件写数据,写操作从文件的当前指针位置开始。对磁盘文件进行写操作,若磁盘已满或超出该文件的长度,则 write()函数返回失败。
  5. lseek()函数用于在指定的文件描述符中将文件指针定位到相应的位置。它只能用在可定位(可随机访问文件操作中。管道、套接字和大部分字符设备文件是不可定位的,所以在这些文件的操作中无法使用lseek()调用。

函数ioctl

SYNOPSIS
       #include <sys/ioctl.h>

       int ioctl(int fd, unsigned long request, ...);
posted @ 2023-08-25 17:11  风筝遇见风  阅读(33)  评论(0)    收藏  举报