当前位置: 首页 > 工具软件 > open-c-book > 使用案例 >

Linux c/c++编程--open函数

白星海
2023-12-01

执行man 2 open 查看Linux手册

Test_setenv# man 2 open
OPEN(2)                        Linux Programmer's Manual                        OPEN(2)

NAME
       open, openat, creat - open and possibly create a file

SYNOPSIS
       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>

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

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

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

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

1,头文件,注意open函数需要包含头文件的有点多,缺一不可。

#include <sys/types.h>

#inlcude <sys/stat.h>

#inlcude <fcntl.h>

2.参数1(pathname)

即将要打开的文件路径,例如:“a.txt”当前目录下的a.txt文件

3.参数2(flags)

flags分为两类:主类,副类

主类:O_RDONLY 以只读方式打开   /   O_WRONLY 以只写方式打开   /O_RDWR 以可读可写方式打开

三这是互斥的

副类:

O_CREAT 如果文件不存在则创建该文件

O_EXCL 如果使用O_CREAT选项且文件存在,则返回错误消息

O_NOCTTY 如果文件为终端,那么终端不可以调用open系统调用的那个进程的控制终端

O_TRUNC 如果文件已经存在泽删除文件中原有数据

O_APPEND 以追加的方式打开

主副可以配合使用,例如:O_RDWR|O_CREAT|O_TRUNC

4.参数3(mode)

mode:如果文件被新建,指定其权限未mode

mode是八进制权限码,0777表示文件所有者   该文件用户组     其他用户都有可读可写可执行权限


 

 

转载于:https://my.oschina.net/PMNaYxT/blog/1928511

 类似资料: