文件描述符、函数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);函数的返回值:若成功,返回文件描述符; 若出错,返回-1

flag参数:必选项

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;
}

输出结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java这些高端技术只有你还不知道,移动架构师成长路线

并发编程共享模型篇 并发编程概览进程与线程Java线程共享模型之管程共享模型之内存共享模型之无锁共享模型之不可变共享模型之工具 共享模型之管程 原理之 Monitor(锁) 原理之伪共享 模式篇—正确姿势 同步模式之保护性智停同步模式之Blking同步模式之顺序控制异步模式之生产…

函数read、write、lseek

函数原型&#xff1a; #include<unistd.h> ssize_t read(int fd, void *buf, size_t count);返回值&#xff1a;读到的字节数&#xff0c;若已到文件尾&#xff0c;返回0&#xff1b;若出错&#xff0c;返回-1 参数&#xff1a; fd&#xff1a;函数open的返回值buf&a…

Java这些高端技术只有你还不知道,薪资翻倍

正文 我的第一份工作是在一家外企&#xff0c;当时抱着“逃离”上海的想法去了二线城市的分公司&#xff0c;但是管理文化氛围跟总部几乎都是一样的&#xff0c;这份工作经历对我后面的工作不论是做事风格、习惯上还是思考问题的方式方法上都有很大的影响。后面陆续进入国企&a…

函数dup和dup2

函数原型&#xff1a; #include<unistd.h> int dup(int oldfd);返回值&#xff1a;若成功&#xff0c;返回新的文件描述符&#xff1b;若出错&#xff0c;返回-1 参数&#xff1a; oldfd&#xff1a;要复制的文件描述符dup调用成功&#xff1a;有两个文件描述符指向同…

Java进阶面试资料无偿分享!真香系列

8-22 投递简历 8-24 一面&#xff08;大概1h50min&#xff09; 0、currenthashmap怎么扩容的&#xff1f;fwn为什么固定hash -1&#xff0c;这样设计有什么好处&#xff1f;帮助扩容是发生在什么阶段?读线程和写线程都会帮助扩容吗&#xff1f;扩容的时候任务具体怎么协调的&…

Java通用流行框架大全,绝对干货

Java如何入门&#xff1f; 1、建立好开发环境 首先建立好开发环境非常重要&#xff0c;工欲善其事&#xff0c;必先利其器。做任何开发&#xff0c;首先就是要把这个环境准备好&#xff0c;之后就可以去做各种尝试&#xff0c;尝试过程中就能逐渐建立信心。初学者往往在环境配…

Java集合类中绝对占有一席之地的List,涨薪7K!

一、先来解读&#xff1a;23种设计模式要点 1.单例模式&#xff08;Singleton Pattern&#xff09; 2.工厂模式 3.抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09; 4.模板方法模式&#xff08;Template Method Pattern&#xff09; 5.建造者模式&#xff08;Bu…

Java面试10大知识点总结宝典助你通关!已拿意向书!

Java基础 1.Java语言的三大特性 2.Java语言主要特性 3. JDK和JRE有什么区别 4.Java基本数据类型及其封装类 5.如果main方法被声明为private会怎样? 6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用 7.与equals的区别 8.Object有哪些公用方法 9.…

互斥锁、条件变量

一、互斥锁 1. 函数原型&#xff1a; pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); pthread_mutex_destroy(pthread_mutex_t *mutex); 分析&#xff1a; pthread_mutex_t 类型&#xff0c;其本质是一个结构体&#xf…

Java面试你必须要知道的那些知识,深夜思考

如何提升自己的实力&#xff1f; Step 1&#xff1a;梳理自己的知识 对照下面这份学习大纲&#xff0c;梳理出自己的知识盲区&#xff0c;这份大纲里面的技术点完全对标P7岗的主流技术&#xff0c;因此这是一份很好的知识大纲笔记。 Step 2&#xff1a;查漏补缺&#xff0c;夯…

Java面试你必须要知道的那些知识,面试建议

二、面试题 面&#xff1a;考你几个红黑树的知识点&#x1f980; 红黑树的数据结构都用在哪些场景&#xff0c;有什么好处&#xff1f;红黑树的时间复杂度是多少&#xff1f;红黑树中插入新的节点时怎么保持平衡&#xff1f; 面&#xff1a;2-3树都是不没看&#xff0c;回去…

存储映射I/O(一)

一、存储映射I/O 存储映射I/O使一个磁盘文件与存储空间中的一个缓冲区映射&#xff0c;于是当从缓冲区中取数据&#xff0c;就相当于读文件中的相应字节。于此类似&#xff0c;将数据存入缓冲区&#xff0c;则相应的字节就自动写入文件&#xff0c;这样&#xff0c;就可在不不…

【绝对干货】kafkastream广告

Java如何入门&#xff1f; 1、建立好开发环境 首先建立好开发环境非常重要&#xff0c;工欲善其事&#xff0c;必先利其器。做任何开发&#xff0c;首先就是要把这个环境准备好&#xff0c;之后就可以去做各种尝试&#xff0c;尝试过程中就能逐渐建立信心。初学者往往在环境配…

存储映射IO(二)

mmap父子进程间通信 1. 测试代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/wait.h>int var 100;int main(void) {int *p;pid_t pid;int fd;…

【聊透SpringMVC】java技术经理岗位职责

缓存维护方案一 如果是一读&#xff08;线程B&#xff09;一写&#xff08;线程A&#xff09;操作&#xff0c;「先操作缓存&#xff0c;再操作数据库」。流程图如下所示&#xff1a; 1.线程A发起一个写操作&#xff0c;第一步del cache 2.线程A第二步写入新数据到DB 3.线程…

【聊透SpringMVC】自学java和三大框架要多久

饿了么一面&#xff08;Java&#xff09; hashmap源码问题 HashMap底层结构 put操作讲一下 HashMap、HashMap如何保证线程安全、ConcurrentHashMap JVM有哪些回收算法&#xff0c;对应的收集器有哪些&#xff1f; jvm g1的内存模型讲一下&#xff0c;G1和CMS收集器的区别&#…

【设计思想解读开源框架】mysql官方文档中文版下载免费

01 源码分析 源码阅读&#xff0c;最核心有三点&#xff1a;技术基础强烈的求知欲耐心。 1.1 设计模式&#xff08;45设计模式&#xff1a;介绍优缺点应用实例源代码解决问题&#xff09; 1.2 Spring复习大纲&#xff1a;依赖注入IocBeans注解数据访问AOPMVC等 1.3 Spring全家…

命令新参

命令形参&#xff1a; 命令行参数是使用main()函数参数来处理的&#xff0c;其中&#xff0c;argc是指传入参数的个数&#xff0c;argv[]是一个指针数组&#xff0c;指向传递给程序的每个参数。 应当指出的是&#xff0c; argv[0]存储程序的名称&#xff0c;argv[1]是一个指向…

【金三银四】启动mysql服务器

微服务架构 ①微服务概念&#xff1a; ②Spring Cloud微服务架构&#xff1a; 海量数据处理 ①&#xff1a;经典的海量数据处理面试题 高可用架构 ①基于 Hystrix 实现高可用&#xff1a; ②限流&#xff1a; ③熔断&#xff1a; 高并发架构 ①消息队列&#xff1a; ②搜索…

函数fork vfork

一、函数fork fork函数原型&#xff1a; #include <unistd.h> pid_t fork(void); 二、程序清单 1. 测试代码&#xff1a; #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h>…