IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 第二阶段01 C语言系统IO -> 正文阅读

[C++知识库]第二阶段01 C语言系统IO

加入CSDN是出于记录,希望有不足之处多加指正。

1、文件IO

系统IO:

  • 由系统直接提供函数接口,特点是接口简洁而功能单一。
  • 没有提供缓冲区,对于处理海量数据效率低下。
  • 有个别的文件/操作只能通过系统IO来访问。

标准io:

  • 由标准C库所提供的接口,特点功能比较丰富。
  • 有提供缓冲区,多余处理量数据来说效率比较高。
  • 编程过程中尽量多使用标准IO,只有在某些不得已的情况下才选择系统IO。

系统IO的API接口:

  1. 确保文件存在:access();
  2. 打开文件:open();
  3. 写入信息:write();
  4. 关闭文件:close();
open (打开文件)
   头文件:
   #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);
   参数分析:
   pathname --> 路径+名字
   flags    -->所能使用的旗标
       O_RDWR 以可读写方式打开文件,利用 OR (|) 运算符组合。
       O_CREAT 若欲打开的文件不存在则自动建立该文件。
       ......
    mode --> 只要在文件需要创建的时候生效,其余的情况无效
       用来表示文件创建时的初始权限值
       0654 --> 0 八进制
                6 拥有者可读+可写
                5 同组用户可读+可执行
                4 其他用户可读
                或者使用:
                S_IRUST|S_IWUSR|S_IRGRP|S_IXGRP|S_IROTH
   返回值:
         成功 :返回一个文件描述符(new file descriptor)
         int --> 整型-->数字-->编号-->文件
         失败 : 返回-1,错误号码会被设置

注意:

  • 文件描述符仅用于当前进程。
  • open 的返回值必须得接收,不然的话无法访问文件。

错误号码:

perror( 打印出错误原因信息字符串)
   头文件:
   #include <stdio.h>
   定义函数:
   void perror(const char *s);
   参数分析:
   s --> 错误提示信息+自动接上错误原因
   返回值:
   无
strerror (返回错误原因的描述字符串)
  头文件:
  #include <string.h>
  定义函数:
  char * strerror (int errnum);
  参数分析:
  errnum -->错误号码,系统定义的宏 errno
  返回值:
  返回描述错误原因的字符串指针

注意:
strerror 需要多包含一个错误号码的头文件 <errno.h>

实例代码:

int main (int argc , char const *argv[])
{
   char *FileName = "./123.txt";
   int fd_test = open (FileName, O_WRONLY | O_CREAT, 0666);
   if(-1 == fd_test)
   {
      printf("不能打开文件:%s,原因是%d\n", FileName, strerror (errno));
      return -1;   // 返回值 -1 ,不然会报错
   }
   else
   {
      printf("可以打开文件:%s ,描述符%d\n" ,FileName , fd_test);
   }
   return 0;
}
write (将数据写入已打开的文件内)
   头文件:
   #include <unistd.h>
   size_t write (int fd, const void *buf , size_t count);
   参数分析:
   fd --> 需要写入的文件的描述符
   buf --> 需要写入数据的首地址
   count --> 需要写入的字节数
   返回值:
      返回实际写入的字节数。
      当有错误发生时则返回-1,错误代码存入 errno 中
close (关闭文件)
   头文件:
   #include <unistd.h>
   定义函数:
   int clost(int fd);
   参数分析:
   fd --> 需要关闭的文件描述符
   返回值:
   若文件顺利关闭则返回 0
   发生错误返回 -1
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:43:27  更:2021-12-28 22:45:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:59:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码