文件的创建与打开

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

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

功能:打开文件

pathname:文件路径

flags:打开文件的方式

返回值:文件描述符,失败返回负值

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

功能:打开或创建文件

pathname:文件路径

flags:打开方式

mode:创建文件时的权限

返回值:文件描述符,失败返回负值


int creat(const char *pathname, mode_t mode);

功能:专门用来创建文件,但基本不使用,因为open函数完全具备它的功能。


注意:open/creat所返回的一定是当前未被使用的,最小文件描述符。

一个进程可以同时打开的文件描述符个数,受limits.h中定义的OPEN_MAX宏的限制,POSIX要求不低于16,传统UNIX是63,现代Linux是255。

flags:

O_APPEND 打开文件后位置指针指向末尾

O_CREAT 文件不存在时创建

O_RDONLY 只读权限

O_WRONLY 只写权限

O_RDWR 读写权限

O_TRUNC 清空文件内容

O_EXCL 如果文件存在则创建失败

O_NOCTTY 若pathname指向控制终端,则不将该终端作为控制终端。

O_NONBLOCK 若pathname指向FIFO/块/字符文件,则该文件的打开及后续操作均为非阻塞模式。

O_SYNC write等待数据和属性,被物理地写入底层硬件后再返回。

O_DSYNC write等待数据,被物理地写入底层硬件后再返回。

O_RSYNC read等待对所访问区域的所有写操作,全部完成后再读取并返回。

O_ASYNC 当文件描述符可读/写时,向调用进程发送SIGIO信号。

mode:

S_IRWXU  00700

S_IRUSR  00400

S_IWUSR  00200

S_IXUSR  00100


S_IRWXG  00070

S_IRGRP  00040

S_IWGRP  00020

S_IXGRP  00010


S_IRWXO  00007

S_IROTH  00004

S_IWOTH  00002

S_IXOTH  00001

int close (int fd);

功能:关闭文件,成功返回0,失败返回-1

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 可以使用库函数堆文件进行操作,同时也可以使用系统调用来进行文件操作。主要针对以下几个系统调用函数: open(2...
    54c1eca7148a阅读 2,207评论 0 0
  • 姓名:王芷若 学号:19020100180 学院:电子工程学院 转载自:https://blog.csdn.ne...
    王芷若阅读 560评论 0 0
  • 所有执行I/O操作的系统调用都以文件描述符(一个非负整数)来指代打开的文件。包括pipe,FIFO,socket,...
    loopppp阅读 745评论 0 0
  • UNIX 文件I/O 引言 介绍UNIX系统可用的文件I/O函数---打开文件、读文件、写文件等 UNIX文件I/...
    yuq329阅读 475评论 0 0
  • LINUX下文件的操作 以下均已为ubuntu 18.04 LTS环境。 文件的打开open打开文件的函数原型:*...
    快扶我起来搬砖阅读 300评论 0 0

友情链接更多精彩内容