linux程序创建文件另一种方式

总体概述:

在linux系统环境下,可以通过touch命令创建一个空文件,但这是使用命令创建的方式。我们有时需要在程序中创建文件,这就需要用到creat和access函数。当然也可以用open函数,但open的创建方式不在本章介绍。

函数语法:

creat函数语法:int creat(const char *pathname, mode_t mode);

access函数语法:int access(const char *pathname, int mode);

函数作用:

creat函数的作用:用于创建一个文件调用create()相当于调用open(),flag标志为O_CREAT|O_WRONLY|O_TRUNC

access函数的作用:access()检查调用进程是否可以访问文件路径名。mode参数为F_OK,可以测试文件是否存在。

参数介绍:

creat函数参数介绍:

  • 输入参数:pathname => 文件路径名。

  • 输入参数:mode => 文件的访问模式。

  • 返回值:成功:已创建的文件描述符;失败:-1。

access函数参数介绍:

  • 输入参数:pathname => 文件路径名。

  • 返回值:成功:0(所有请求的权限都被授予,或者模式为F_OK并且文件存在);失败:-1。

代码示例:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
​
int main(int argc, char **argv)
{
    if (argc != 2) {
        printf("usage: %s <pathname>.\n", argv[0]);
        return -1;
    }
    
    if (access(argv[1], F_OK) == 0) {
        printf("File: %s already exist.\n", argv[1]);
        return -1;
    }
    
    mode_t permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH;
    return (creat(argv[1], permissions) == -1) ? -1 : 0;
}

使用方法:

$ mkdir ~/clanguage && cd ~/clanguage
$ touch creat.c             注:创建并拷贝代码到creat.c,保存退出。
$ gcc -o creat creat.c
$ ./creat hello

运行效果:

注:由于作者能力有限,文中表述难免有错误。如果发现文中错误之处,敬请广大好友批评指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值