open、openat和close函数

调用open或openat函数可以打开或创建一个文件。

#include<fnctl.h>
int open(const char *path, int oflag,.../* mode_t mode */);
int openat(int fd, const char *path, int oflag, .../* mode_t mode */);

参数:
path:要打开或创建的文件。
oflag:用来说明此函数的多个选项,由指定的一个或多个常量进行“或"运算构成oflag参数。
读写模式常量:(这5个常量中必须指定一个且只能指定一个)。

常量含义
O_RDONLY只读打开
O_WRONLY只写打开
O_RDWR读、写打开
O_EXEC只执行打开
O_SEARCH只搜索打开

下列常量是可选的:

常量含义
O_APPEND每次写时都追加到文件的尾端
O_CLOEXEC把FD_CLOEXEC常量设置为文件描述符标志
O_CREAT若此文件不存在则创建它
O_DIRECTORY如果path引用的不是目录,则出错
O_EXCL如果同时指定了O_CREAT,而文件已存在,则出错
O_NOCTTY如果path引用的是终端设备,则不将该设备分配作为此进程的控制终端
O_NOFOLLOW如果path引用的是一个符号链接,则出错
O_NONBLOCK如果path引用的是一个FIFO、一个块特殊文件或一个字符特殊文件,则设置打开/后续操作为非阻塞方式
O_SYNC每次write等待物理I/O完成,更新所需的I/O
O_TRUNC如果此文件存在,而且为只写或读-写成功打开,则将其长度截断为0
O_TTY_INIT如果打开一个还未打开的终端设备,设置非标准termios参数值,使其符号Simple Unix Specification

fd:fd将open和openat区分,共有3种情况。
(1)path指定的是绝对路径名,fd被忽略,openat相当于open。
(2)path指定的是相对路径名,fd指出相对路径名在文件系统中的开始地址(在path的基础上打开fd)。
(3)path指定的是相对路径名,fd为AT_FDCWD,路径名在当前工作目录获取,openat在操作上与open函数类似。

返回值:
成功,则返回文件描述符;
出错,返回-1.

#include<fcntl.h>

int main()
{
    open("test.txt",O_RDONLY);
    return 0;
}   

函数close

#include<unistd.h>
int close(int fd);

关闭一个打开文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值