当前位置: 首页 > web >正文

Linux下的软件编程——标准IO

Linux下的软件编程:1.文件操作—> 一切皆文件        2.多任务—> 进程,线程

                                  3.网络编程                                4.构建网络服务器

                                  5.数据库

文件操作:

1.Linux下的文件类型

七种文件类型:

b        块设备文件 —> 存储类设备(硬盘)

c        字符设备文件 —> 输入输出设备(鼠标,键盘,显示器)

d        目录文件 —> 文件夹

-        普通文件 —> xxx.h  xxx.c  xxx.txt  xxx.jpg  xxx.mp4  a.out

l        软链接文件 —> 快捷方式

s        套接文件 —> 网络通信

p        管道文件 —> 进程间通信

2.Linux文件解析

drwxr-xr-x  3 linux linux  4096 Mar 19  2020 .vim/

d :文件类型

rwxr-xr-x :文件操作权限  r- read  w- write  x - 可执行权限,第一个rwx:自己对文件的读写执行权限,第二个r-x:同组用户对文件的读写执行权限,r-x :其他人对文件的读写执行权限

3 :链接个数

linux :用户名

linux :同组名

4096 :文件大小

3.文件操作思想

(1)打开文件        (2)读写文件        (3)关闭文件

4.文件操作的方法

linux下的2种文件操作方法:

(1)标准IO :C标准库提供的一套对文件的操作方法        ——> 库函数

(2)文件IO :linux内核提供的一套对文件操作的操作方法        ——>系统调用

I : input        O :output

5.标准IO

(1)打开文件:fopen

(2)读写文件:fgetc / fputc:一个字符一个字符的读写

                           fgets / fputs:一行一行的读写       

                           fread / fwrite:

(3)关闭文件:fclose

man手册

第一章节:linux命令        第二章节:系统调用        第三章节:库函数

FILE *fopen(const  char  *pathname,const  *mode)

(1)功能:打开一个文件并获得一个文件流指针

(2)参数:pathname:打开的文件名地址

               ※  mode:打开方式

                                "r"以读的方式打开        "r+"以读写的方式打开

                                "w"以只写的方式打开,文件存在则清空,文件不存在则创建文件

                                "w+"以读写的方式打开,文件存在则清空,文件不存在则创建文件

                                "a"以追加写的方式打开,文件不存在则创建文件

                                 "a+"以读写的方式打开,文件不存在则创建文件,文件存在追加写

stream (流):字节流

文件流:数据从文件流入流出体现出来的字节流

标准IO:FILE —> 文件流        FILE *—> 文件流指针—>已打开的文件

(3)返回值

        成功:文件流指针:FILE*

        失败:NULL

int fputc(int c , FILE *stream)

(1)功能:向文件中写入一个字符

(2)参数:c :要写入的字符

                    stream :要写入的文件的文件流指针

(3)返回值:成功:写入字符的ASCII值

                        失败;EOF(-1)

sizeof(变量 / 数据类型)—> 在内存中所占的字节数

strlen(字符串的首地址 / 字符型数组数组名)—> 该字符串在内存中所占的字节数

int fgetc (FILE *stream)

(1)功能:从文件中读取一个字符

(2)参数:stream:要写入的文件的文件流指针

(3)返回值:成功:读到的字符ASCII值

                        失败 / 读取到文件:EOF

※ 主函数传参:./a.out  aaa  bbb —> 实参

                        形参:主函数中的参数

                                argc:程序运行时给主函数传递的参数个数

                                argv:指针数组,argv个指针,分别指向了给主函数的实参

                                        argv[0]:"./a.out"        "aaa"        "bbb"

普通文件:文本文件:1.txt        xxx.c        xxx.h        

                  二进制文件:xxx.jpg        a.out        xxx.png        xxx.mp4

int  fputs(const char  *s,FILE *stream)

(1)功能:向文件中写入字符串(不会写入‘\0’)

(2)参数:s:字符串首地址

                    stream:要写入的文件流指针

(3)返回值:成功:非负的整形数据

                        失败:EOF(-1)

char *fgets(char *s,int  size,FILE *stream)

(1)功能:从文件中读取一行数据

(2)参数:s:用来存放读取到数据的内存空间首地址

                    size:希望从文件中读到的字节数

                    stream:要读取的文件流指针

(3)返回值:成功:返回s空间的首地址

                        失败 / 读到文件末尾:NULL

http://www.xdnf.cn/news/17635.html

相关文章:

  • ECharts Y轴5等分终极解决方案 - 动态适配缩放场景
  • 后量子密码学的迁移与安全保障:迎接量子时代的挑战
  • NLP---IF-IDF案例分析
  • FreeRTOS学习:优化系统
  • LeetCode_哈希表
  • 论文阅读:Aircraft Trajectory Prediction Based on Residual Recurrent Neural Networks
  • OpenAI正式发布GPT-5:迈向AGI的关键一步
  • sqllabs——Less1
  • MySQL面试题及详细答案 155道(041-060)
  • ThreadLocal有哪些内存泄露问题,如何避免?
  • Mysql笔记-存储过程与存储函数
  • 【Linux】使用静态 BusyBox 解决操作系统“塌方”问题
  • ADK[3]历史对话信息保存机制与构建多轮对话机器人
  • 单片机捷径
  • nginx下lua的实现机制、Lua错误处理、面向对象
  • Unity 遮挡显示效果 Shader
  • 异步问题的概念和消除问题技巧
  • 机器学习 DBScan
  • Java语言简介
  • 《算法导论》第 17 章 - 摊还分析
  • 【Docker进阶实战】从多容器编排到集群部署
  • 谷歌DeepMind发布Genie 3:通用型世界模型,可生成前所未有多样化的交互式虚拟环境
  • 【PyTorch】单目标检测项目部署
  • BGP知识点总结
  • MACBOOK M1安装达梦8数据库
  • 机器学习实战·第三章 分类(1)
  • 组合期权:对角价差
  • Python描述符进阶:自定义文档与属性删除的艺术
  • 2025年全国青少年信息素养大赛Scratch编程践挑战赛-小高组-初赛-模拟题
  • P3232 [HNOI2013] 游走,solution