c语言中的creat()函数使用及参数详解

本文深入探讨了Linux系统中creat()函数的使用方法及其参数,包括如何通过该函数创建文件,设置文件权限,并获取文件描述符。同时,文章详细解释了文件描述符的概念及其在操作系统中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件:#include <sys/types.h>   #include <sys/stat.h>   #include <fcntl.h>

  1. #include <fcntl.h>                          // 提供open()函数  
  2. #include <sys/types.h>                      // 提供mode_t类型  
  3. #include <sys/stat.h>                       // 提供open()函数的符号  
  4. #include <unistd.h>                         // 提供close()函数

定义函数:int creat(const char * pathname, mode_tmode);

函数说明:
1、参数 pathname 指向欲建立的文件路径字符串。
2、Creat()相当于使用下列的调用方式调用open()
    open(const char * pathname, (O_CREAT|O_WRONLY|O_TRUNC));
  

     filename:要创建的文件名(包括路径,默认当前路径)

     mode:创建模式,指定用户操作权限(针对三种用户设置:所处用户,所处用户组,其他用户

                               权限:读,写,执行)

(0表示没有任何权限

     S_IRUSR可读,1

     S_IWUSR可写,2

     S_IXUSR可执行,4

    S_IRWXR可读、写、执行)7(也可以用数字代替,如0777)

返回值:文件描述符,值为一个整数,发生错误时返回-1

返回值:
creat()会返回新的文件描述词, 若有错误发生则会返回-1, 并把错误代码设给errno.

错误提示:
EEXIST参数:pathname 所指的文件已存在.
EACCESS参数:pathname 所指定的文件不符合所要求测试的权限
EROFS:欲打开写入权限的文件存在于只读文件系统内
EFAULT参数:pathname 指针超出可存取的内存空间
EINVAL参数:mode 不正确.
ENAMETOOLONG参数:pathname 太长.
ENOTDIR 参数:pathname 为一目录
ENOMEM :核心内存不足
ELOOP 参数:pathname 有过多符号连接问题.
EMFILE:已达到进程可同时打开的文件数上限
ENFILE:已达到系统可同时打开的文件数上限

ps:1.什么是文件描述符?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值