【系统基础】open函数

对文件的操作是linux/unix里最基本的一种操作,现在举个例子


#include <stdio.h>

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

int main(void)
{
    int fd; 

    // fopen(..., "w");
    fd = open("./test", O_WRONLY | O_CREAT | O_TRUNC, 0644);

    printf("fd = %d\n", fd);

//    close(fd);

    return 0;
}


============================================================

先用man 2 open看open函数手册

int open(const char *pathname, int flags);

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

为什么有这样两种函数原型呢?因为如果打开的文件不存在的话,就需要创建,而创建出来的文件权限,就是mode


第一个参数,文件路径,第二个参数,标志位,包括可写,可读,可读写,创建等等


这里详解一下上面这段程序里的参数,

O_WRONLY:只读

O_CREAT:如果不存在文件,则创建,如果加该标志,则需要第三个参数,添加权限

O_TRUNC:截短为0,说白了就是每次运行该程序都把原来的文件清空,然后重新写


mode,0644请参考文件权限


最后,返回值,fd

fd是一个文件打开表示符,linux系统默认打开三个文件标识符,分别是0,1,2对应标准输入,标准输出,标准出错

一般来讲新打开的文件表示符号,从3开始,可以用printf打出来查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值