文章目录

  • 文件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相关推荐

  1. 浅谈linux IO

    女主宣言 今天小编为大家分享linux IO相关的基础知识,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算",点关注哦! 1 前言 linux ...

  2. springboot文件上传服务器,SpringBoot: 浅谈文件上传和访问的坑 (MultiPartFile)

    本次的项目环境为 SpringBoot 2.0.4, JDK8.0. 服务器环境为CentOS7.0, Nginx的忘了版本. 前言 SpringBoot使用MultiPartFile接收来自表单的f ...

  3. 浅谈PROFINET IO通信的实时性

    PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准.作为一项战略性的技术创新,PROFINET为自动化通信 ...

  4. nginx 上传文件漏洞_浅谈文件上传漏洞(其他方式绕过总结)

    前言 上一篇文章简单的介绍了绕过客户端检测,现在总结一下其他方式绕过. 正文 1.1 服务端MIME类型检测绕过 检测原理:用户上传文件时,服务器会获取这个文件的MIME值,与事先设置好的进行比对,如 ...

  5. OGNL表达式语言浅谈

    OGNL(Object Graphic Navigation Language,对象图导航语言)是一种功能强大的EL(Expression Language,表达式语言,JSP2.0规范),Strut ...

  6. 浅谈文件包含之包含pearcmd.php漏洞

    文件包含之包含pearcmd.php漏洞 1.概念 pecl是PHP中用于管理扩展而使用的命令行工具,而pear是pecl依赖的类库.在7.3及以前,pecl/pear是默认安装的: 在7.4及以后, ...

  7. 上传php文件不能解析,浅谈文件解析及上传漏洞

    中国菜刀 在web渗透中,我最期待两种漏洞,一种是任意命令执行漏洞,如struct2漏洞等:另一种是文件上传漏洞,因为这两种漏洞都是获取服务器权限最快最直接的方法.而对于任意命令执行漏洞,如果是通过内 ...

  8. tlv c语言,浅谈自定义通讯协议——TLV | 求索阁

    所谓通讯协议就是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传送速度,传送步骤,纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,倘若一方不遵守,便会直接导致数 ...

  9. C语言 浅谈可变参数

    1.可变参数产生原因 首先来看一个简单的例子. int Add(int x, int y) {return x + y; } int main() {int sum = 0;sum = Add(1, ...

最新文章

  1. count http://www.cplusplus.com/reference/algorithm/count/
  2. php数组转字符串 join,jQuery中将数组转换成字符串join()和push()使用
  3. 珠海a货翡翠,惠州a货翡翠
  4. dataset的用法
  5. Eclipse快捷键的使用
  6. excel diy工具箱_我是工具控:excel最酷工具箱 — 方方格子
  7. 30首优秀奥运歌曲获奖作品出炉
  8. kafka是什么_Kafka为什么快到根本停不下来?
  9. 提升进程权限的几个常用函数
  10. 联想电脑尺寸在哪里看_联想笔记本电脑型号查看方式、含义介绍【图文教程】...
  11. 互联网产品经理好书推荐
  12. windows 10 提升管理员权限
  13. Qt开发经验小技巧176-180
  14. 双硬盘双系统(windows10+deepin)
  15. 4个入口8条光缆!我们这样与世界连接
  16. 如何学计算机打字,新手学习计算机打字全文阅读
  17. apache-felix实例
  18. chatgpt智能提效职场办公-ppt怎么设置背景图片
  19. 12.2 数据库控制文件复制到ASM磁盘组
  20. 10.业余无线电术语

热门文章

  1. arcgispython脚本开发工具_06-05【求助】利用python脚本语言开发新的Arctoolbox工具
  2. 关于Office Professional Plus 2013 VOL 和Office Professional Plus 2013 - DVD的区别
  3. Anaconda环境下安装opencv
  4. DL4J实战之二:鸢尾花分类
  5. HACK学习黑帽子Python--漏洞检测脚本快速编写
  6. 基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
  7. ubuntu下amd超频工具_玩转GPU必备 – 我的Linux 工具箱
  8. 揭秘返利APP了领取优惠就的背后隐秘
  9. 深度学习中的Tensor 数据格式(N,C,H,W)
  10. 数学里的 e 为什么叫做自然底数?