嵌入式Linux开发之文件I/O编程open、creat、close函数

一、前言

文件I/O编程是linux开发的一个核心阶段,也是学习linux系统编程的入门阶段。文件I/O编程贯穿了整个linux系统编程,是我们必须掌握的。linux不同于windows,是因为在linux下有一个非常重要的概念——一切皆文件!

二、函数

open

原型:int open(const char *pathname, int flags)
	 int open(const char *pathname, int flags, mode_t mode)
头文件:#include <sys/types.h>,#include <sys/stat.h>,#include <fcntl.h>
功能:打开文件(若文件不存在则创建一个文件并打开)
返回值:成功返回文件描述符(一个非负数),失败返回-1
参数:pathname,所要打开或创建的文件的全路径
	 flags,设置打开或创建文件的属性
	 mode,创建文件时才存在,设置创建好的文件所具有的权限
关于flags的选项,这里介绍几个常用的选项,其他选项需要到再查用法:由O_RDONLY(只读)O_WRONLY(只写)O_RDWR(读写)的一个与下列一个或多个构成或运算
1、O_APPEND:每次写时都追加到文件内容尾
2、O_CREAT:若文件不存在,则创建一个
3、O_EXCL:测试所要打开的文件是否存在,与O_CREAT搭配时,若不存在则创建文件,反之出错

creat

原型:int creat(const char *pathname, mode_t mode)
头文件:#include <sys/types.h>,#include <sys/stat.h>,#include <fcntl.h>
功能:创建文件,默认已只写方式创建文件
返回值:成功返回文件描述符(一个非负数),失败返回-1
参数:pathname,所要打开或创建的文件的全路径
	 mode,设置新文件的权限

close

原型:int close(int fd)
头文件: #include <unistd.h>
功能:关闭打开的文件描述符
返回值:成功返回0,失败返回-1
参数:fd,之前打开或创建文件所返回的文件描述符

注:当一个进程结束时,都会由内核自动关闭这个进程打开的所有文件,为了避免出现一些隐晦的错误,这里推荐使用close函数来关闭文件描述符。

三、实例

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    int fd;
    char *path = "./text.txt";

    /*
        open or creat
    */
    if((fd = open(path, O_RDWR|O_CREAT, 0777)) < 0)
    {
        printf("Creat and open %s is failed!\n", path);
        exit(1);
    }else
        printf("Creat and open %s is success!\n", path);

    close(fd);

    return 0;
}

运行结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值