头文件:#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>
- #include <fcntl.h> // 提供open()函数
- #include <sys/types.h> // 提供mode_t类型
- #include <sys/stat.h> // 提供open()函数的符号
- #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.什么是文件描述符?