当前位置:
首页 >
文件描述符、函数open和openat
发布时间:2023/11/30
39
豆豆
生活随笔
收集整理的这篇文章主要介绍了
文件描述符、函数open和openat
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文件描述符
- pcb:结构体
- 一个进程有一个文件描述符:1024
- 文件描述符:寻找磁盘文件
函数open和openat
函数原型:
include<sys/stst.h> #include<fcntl.h>int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);int openat(int fd, const char *pathname, int flags); int openat(int fd, const char *pathname, int flags, mode_t mode);函数的返回值:若成功,返回文件描述符; 若出错,返回-1flag参数:必选项
| O_RDONLY | 只读打开 |
| O_WRONLY | 只写打开 |
| O_RDWR | 读、写打开 |
flag参数:可选项
| O_APPEND | 每次写时追加到文件的末尾 |
| O_CREAT | 若此文件不存在则创建它 |
| O_EXCL | 创建文件时检测文件是否存在,必须与O_CREAT一起使用 |
| O_TRUNC | 如果文件存在,而且只写或读写打开成功打开,则将其长度阶段为0 |
mode参数:mode &~ umask
测试代码:
#include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<unistd.h> #include<stdio.h>int main(int argc, const char *argv[]) {int fd = open("hello", O_RDWR | O_CREAT, 0777);if(fd == -1) {printf("打开失败\n");}close(fd);return 0; }输出结果:
总结
以上是生活随笔为你收集整理的文件描述符、函数open和openat的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 哈利波特魔法觉醒决斗录像怎么保存
- 下一篇: 函数read、write、lseek