前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >O_EXCL 实现根据文件是否存在来创建文件

O_EXCL 实现根据文件是否存在来创建文件

作者头像
我与梦想有个约会
发布2023-10-20 17:52:37
1260
发布2023-10-20 17:52:37
举报
文章被收录于专栏:jiajia_dengjiajia_deng

在使用 open 函数时,会有这样的需求,如果文件存在,那么就报错退出,如果文件不存在那么就创建该文件。当然我们在执行 open 函数之前可以判断一下文件是否存在,但是这样做不仅多了一步,而且比较麻烦,其实使用 open 中的 O_EXCL 参数就可以解决这种问题。

代码语言:javascript
复制
int nRet = open("/home/mycode/mycode.txt", O_WRONLY  O_CREAT  O_EXCL, 0644);

当以上代码执行时,如果 /home/mycode/mycode.txt 文件存在,那么 nRet 会返回-1,并且 errno == EEXIST,我们可以通过以下两种方法来判断:

代码语言:javascript
复制
int nRet = open("/home/mycode/mycode.txt", O_WRONLY  O_CREAT  O_EXCL, 0644);
if (nRet < 0)
{
    perror("open file error");
    exit(1);
}
代码语言:javascript
复制
int nRet = open("/home/mycode/mycode.txt", O_WRONLY  O_CREAT  O_EXCL, 0644);
if (errno == EEXIST)
{
    perror("open file error");
    exit(1);
}

通过上面的代码就可以根据文件是否存在而执行不同的工作了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档