C语言-浅谈文件IO
文章目录
- 文件IO
- 1.文件io的特点
- 2.文件io的操作步骤
- 2.1打开文件
- 2.2关闭文件
- 2.3 操作文件
- 2.4 其他函数
文件IO
1.文件io的特点
(1)文件描述符(非负的整数)
(2)无缓冲机制
(3)系统调用
(4)一般用于设备文件的操作
2.文件io的操作步骤
(1)打开文件
(2)操作文件
(3)关闭文件
2.1打开文件
头文件:
#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);
参数1:文件的路径
参数2:打开的方式
以下参数,必选其一:
O_RDONLY:只读
O_WRONLY:只写
O_RDWR:可读可写
其余的和上面的进行或运算
O_CREAT:如果文件不存在,则新建(必须使用第三个参数)
O_EXCL:如果使用O_CREAT时文件存在,则可返回错误消息。这一参数可测试文件是否存在。
O_NOCTTY:使用本参数时,如文件为终端,那么终端不可以作为调用open()系统调用的那个进程的控制终端。
O_TRUNC:如文件已经存在,那么打开文件时先删除文件中原有数据。
O_APPEND:以追加的方式打开文件,追加在文件的末尾
参数3:权限(一般用8进制数来表示)
返回值:成功返回文件描述符,失败返回-1
2.2关闭文件
头文件:#include <unistd.h>
int close(int fd);
参数:open的返回值,已经打开的文件描述符
返回值:成功返回0,失败返回-1
2.3 操作文件
头文件:
#include <unistd.h>
函数原型:
ssize_t read(int fd, void *buf, size_t count);
参数1:文件描述符,open函数的返回值
参数2:读到的内容空间的首地址
参数3:要读的大小
返回值:成功返回读到的字节数,0表示文件末尾,失败返回-1
ssize_t write(int fd, const void *buf, size_t count);
参数1:文件描述符,open的返回值
参数2:写的内存空间的首地址
参数3:要写的大小
返回值:成功返回写入的字节数,0表示未写入,失败返回-1
2.4 其他函数
头文件:
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
参数1:文件描述符
参数2:偏移量
参数3:偏移的位置(SEEK_SET:文件开头、SEEK_CUR:当前位置、SEEK_END:文件末尾)
C语言-浅谈文件IO相关推荐
- 浅谈linux IO
女主宣言 今天小编为大家分享linux IO相关的基础知识,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算",点关注哦! 1 前言 linux ...
- springboot文件上传服务器,SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)
本次的项目环境为 SpringBoot 2.0.4, JDK8.0. 服务器环境为CentOS7.0, Nginx的忘了版本. 前言 SpringBoot使用MultiPartFile接收来自表单的f ...
- 浅谈PROFINET IO通信的实时性
PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准.作为一项战略性的技术创新,PROFINET为自动化通信 ...
- nginx 上传文件漏洞_浅谈文件上传漏洞(其他方式绕过总结)
前言 上一篇文章简单的介绍了绕过客户端检测,现在总结一下其他方式绕过. 正文 1.1 服务端MIME类型检测绕过 检测原理:用户上传文件时,服务器会获取这个文件的MIME值,与事先设置好的进行比对,如 ...
- OGNL表达式语言浅谈
OGNL(Object Graphic Navigation Language,对象图导航语言)是一种功能强大的EL(Expression Language,表达式语言,JSP2.0规范),Strut ...
- 浅谈文件包含之包含pearcmd.php漏洞
文件包含之包含pearcmd.php漏洞 1.概念 pecl是PHP中用于管理扩展而使用的命令行工具,而pear是pecl依赖的类库.在7.3及以前,pecl/pear是默认安装的: 在7.4及以后, ...
- 上传php文件不能解析,浅谈文件解析及上传漏洞
中国菜刀 在web渗透中,我最期待两种漏洞,一种是任意命令执行漏洞,如struct2漏洞等:另一种是文件上传漏洞,因为这两种漏洞都是获取服务器权限最快最直接的方法.而对于任意命令执行漏洞,如果是通过内 ...
- tlv c语言,浅谈自定义通讯协议——TLV | 求索阁
所谓通讯协议就是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传送速度,传送步骤,纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,倘若一方不遵守,便会直接导致数 ...
- C语言 浅谈可变参数
1.可变参数产生原因 首先来看一个简单的例子. int Add(int x, int y) {return x + y; } int main() {int sum = 0;sum = Add(1, ...
最新文章
- count http://www.cplusplus.com/reference/algorithm/count/
- php数组转字符串 join,jQuery中将数组转换成字符串join()和push()使用
- 珠海a货翡翠,惠州a货翡翠
- dataset的用法
- Eclipse快捷键的使用
- excel diy工具箱_我是工具控:excel最酷工具箱 — 方方格子
- 30首优秀奥运歌曲获奖作品出炉
- kafka是什么_Kafka为什么快到根本停不下来?
- 提升进程权限的几个常用函数
- 联想电脑尺寸在哪里看_联想笔记本电脑型号查看方式、含义介绍【图文教程】...
- 互联网产品经理好书推荐
- windows 10 提升管理员权限
- Qt开发经验小技巧176-180
- 双硬盘双系统(windows10+deepin)
- 4个入口8条光缆!我们这样与世界连接
- 如何学计算机打字,新手学习计算机打字全文阅读
- apache-felix实例
- chatgpt智能提效职场办公-ppt怎么设置背景图片
- 12.2 数据库控制文件复制到ASM磁盘组
- 10.业余无线电术语
热门文章
- arcgispython脚本开发工具_06-05【求助】利用python脚本语言开发新的Arctoolbox工具
- 关于Office Professional Plus 2013 VOL 和Office Professional Plus 2013 - DVD的区别
- Anaconda环境下安装opencv
- DL4J实战之二:鸢尾花分类
- HACK学习黑帽子Python--漏洞检测脚本快速编写
- 基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
- ubuntu下amd超频工具_玩转GPU必备 – 我的Linux 工具箱
- 揭秘返利APP了领取优惠就的背后隐秘
- 深度学习中的Tensor 数据格式(N,C,H,W)
- 数学里的 e 为什么叫做自然底数?