UNIX文件操作函数open、create、close、lseek简介
目录
一、文件描述符
二、文件控制头文件 fcntl.h
2.1 打开文件函数
2.2 创建文件函数
三、符号常量头文件unistd.h
3.1 关闭文件函数
3.2 确定文件偏移量函数
一、文件描述符
文件描述符:对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数:
当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。
当读或写一个文件时,使用open或create返回的文件描述符标识该文件,将其作为参数传送给read或write。
二、文件控制头文件 fcntl.h
POSI标准定义的关于文件控制的头文件
2.1 打开文件函数
函数原型 int open(const char *pathname, int oflag, .../*mode_t mode */);
1、pathname是要打开或创建文件的名字(包括文件路径);
2、oflag参数用来说明此函数的多个选项:
在这三个常量中必须指定且只能指定一个。
O_RDONLY 只读模式
O_WRONLY 只写模式
O_RDWR 读写模式
可选(仅仅列举部分):
O_APPEND 每次写都追加到文件的尾端
O_CREAT 此文件不存在,则创建它。需要第三个参数,mode,用其指定该新文件的访问权限位。
3、mode(访问权限位)
创建文件时使用,用其指定新文件的访问权限位。
4、返回值:open返回的文件描述符一定是最小未用的描述符数值。
2.2 创建文件函数
int create(const char *pathname, mode_t mode);
三、符号常量头文件unistd.h
符号常量定义在<unistd.h> unistd.h是unix std的意思,是POSIX(Portable Operating System Interface可移植的操作系统接口)标准定义的unix类系统定义符号常量的头文件。(推荐阅读Linux的前世今生,了解下什么是unix类系统)。
文件描述符0与标准输入关联 STDIN_FILENO
文件描述符1与标准输入关联 STDOUT_FILENO
文件描述符2与标准出错输出关联STDERR_FILENO
3.1 关闭文件函数
关闭一个文件时还会释放该进程加在该文件上的所有的记录锁。
返回值:成功返回0,出错返回-1
3.2 确定文件偏移量函数
每个打开的文件都有一个与其相关联的“当前文件偏移量”(current file offset)。通常是一个非负整数。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数。按系统默认情况下,当打开一个文件时,除非指定O_APPEND,否则该偏移量设置为0。
off_t seek(int filedes, off_t offset, int whence)
对参数的解释与参数whence的值有关。
若whence是SEEK_SET,则将该文件的偏移量设置为距文件开始处offset个字节
若whence是SEEK_CUR,则将该文件的偏移量设置为其当前值加offset,offset可为正或负。
若whence是SEEK_END,则将该文件的偏移量设置为文件长度加offset,offset可为正或负。
若lseek成功执行,则返回新的文件偏移量。
UNIX文件操作函数open、create、close、lseek简介相关推荐
- C语言程序设计 文件操作函数
文件操作函数 C语言 (FILE fputc fgetc fputs fgets fscanf fprintf) 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别 ...
- C/C++,C++文件操作函数
目录 一.标准文件函数 [1]文件的打开和关闭 [2]文件操作的函数 [3]文件的随机读写 [4]读写指针位置操作 二.非标准文件函数 [1] 文件的打开与关闭 [2]读写函数 [3]随机定位函数 三 ...
- python中对文件、文件夹(文件操作函数)的操作
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
- C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...
- 文件操作函数在VFS层的实现
文件操作函数在VFS层的实现 参考"Understanding Linux kernel"中的"12.6 Implementations of VFS System Ca ...
- Linux 高并发学习笔记 - Linux 文件操作函数
1.6.2 Linux 文件操作函数 Linux 高并发学习笔记 - 笔记索引 前言 关于文件操作函数这一块主要用英文文档的形势书写,因为凉皮在写文档的时候发现Markdown用起来太繁琐了.那么关于 ...
- C语言File文件操作函数学习
C语言File文件操作函数学习 (禁止转载) (content from <C Primer Plus, Fifth Edition> By Stephen Prata) · Functi ...
- 使用文件操作函数实现:文件的复制功能。
2019独角兽企业重金招聘Python工程师标准>>> //使用文件操作函数实现:文件的复制功能. #include <stdio.h> #include <std ...
- php文件有哪几种,PHP常用的文件操作函数有哪些
PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...
最新文章
- Java基础之IO笔记
- OpenCV人脸识别LBPH算法源码分析
- Spark Yarn Client模式双网卡-多hostname导致问题(阿里云)
- LinQ—Lambda表达式
- linux/unix 上那些炫酷的命令行工具(一)
- mysql5.7下载镜像_docker重新打包MySQL5.7镜像
- 语句 查询每个人每个科目的最高分_Mysql中常用的查询实例详解
- 2019数模美赛规则
- 技术不牛如何才拿到国内IT巨头的Offer
- 小米3文件与电脑连接到服务器,小米3怎么连接电脑传文件
- 无线wifi盒子用不用拉网线?
- android仿小米日历,实现一个仿小米日历控件
- 中国石油大学(北京)-《安全与生活》在线考试
- uniapp 实现拨打电话
- Echarts 图表生成渐变色方法
- IDS入侵检测系统与开源IDS-snort的安装与编写规则
- 反向索引和自增索引区别_一张图看懂SEO收录与索引的区别
- SpringBoot集成SpringMVC
- 你所说的到底是哪一种
- Ray Tracing in One Weekend从零实现一个简单的光线追踪渲染器
热门文章
- java将map转json字符串
- Eureka注册服时报错:Root name (‘timestamp‘) does not match expected (‘applications‘) for type `org.springfr
- SAP ABAP 模糊查询
- Linux 内网-局域网文件快速传输
- 通过R语言做灰色预测
- ensp ACL访问控制列表配置
- 前端优化之回流(Reflow)与重绘(Repaint)
- Socket和Websocket
- 小程序商城源码代码分析
- 操作系统进程同步实验报告