1-文件IO—open/close函数

1. open函数

  通过open系统调用可以打开一个文件并返回该文件的文件描述符,同理,close系统调用可以通过文件描述符关闭一个文件。

函数原型:

<unistd.h>
<fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);

参数说明:
  pathname: 指定要打开文件的路径

  int flags:用于指定打开文件的读写权限方式

  mode_t mode: 用于指定文件的访问权限(文件组,用户,其他权限,例如:0644)

返回值说明:
  fd 是open函数的返回值(实际上是open函数打开文件成功时返回的整型文件描述符,关于文件描述符后面解释),如果打开失败返回- 1

2. flags常见选项

flags选项一般有以下几种常用方式:
  O_RDONLY:以只读方式打开文件
  O_WRONLY:以只写方式打开文件
  O_RDWR :以可读写方式打开文件


  以上这三种方式,只能指定其中一种,不可以组合使用(O_RDONLY | O_WRONLY),可利用“|”运算符和其他选项进行组合使用,比如:O_WRONLY | O_APPEND(以只写方式打开文件,并且每次写入的数据会追加到文件末尾)。

O_SYNC:以同步方式打开文件

O_CREAT:若打开的文件不存在则自动创建该文件

O_TRUNC:如果打开的文件存在并且以可写方式打开,则将文件的数据全部清空

O_NONBLOCK:以非阻塞式打开文件,无论有无数据或等待,都会立即返回进程之中

O_APPEND:每次打开文件后,新写入的数据会追加到文件末尾,如果不指定,则新写入的数据会从文件起始位置开始写,这会覆盖原来的数据。

O_EXCL:若打开的文件存在则出错,如果设置了O_CREAT的话,会先去检查文件是否存在,不存在则创建该文件,存在的话将出错,可用于测试一个文件是否存在。

3. close函数

  close函数用于关闭一个文件,如果不主动调用close函数关闭打开的文件,进程结束时也会自动关闭进程所打开的文件,但是最好的方式是在使用完文件,主动调用close关闭文件,释放系统资源。换句话说,close文件时,会释放存放打开文件信息的结构体空间。

函数原型:

int close(int fd);

参数fd:已打开的文件的文件描述符

返回值:成功返回0,失败-1

4. 打开关闭文件

使用open和close打开并关闭一个文件

#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>

int main(void)
{
    int fd = open(“test.txt” , O_RDWR | O_CREAT);
    if(-1 == fd){
       perror(“open”);
          //使用errno必须包含errno.h
          //printf(“errno = %d\n”, errno);
       return -1;
    }
    printf(“fd = %d\n”, fd);
    close(fd);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值