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

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.lryc.cn/news/615764.html

相关文章:

  • 编程基础之多维数组——矩阵交换行
  • `sk_buff` 结构体详解(包含全生命周期解析)
  • 如何回收内存对象,有哪些回收算法?
  • XML 指南
  • LeetCode_字符串
  • Jenkins | 账号及权限管理
  • Pytorch深度学习框架实战教程-番外篇02-Pytorch池化层概念定义、工作原理和作用
  • 怎么能更好的降低论文AI率呢?
  • 分布微服务电商订单系统Rust编码开发[下]
  • SpringBoot学习日记(三)
  • 【C++/STL】list模拟实现和迭代器失效问题
  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 十、Linux Shell脚本:流程控制语句
  • [Julia] LinearAlgebra.jl 自带包
  • LeetCode 刷题【37. 解数独】
  • LabVIEW 机器人避障控制
  • 企业架构之导论(1)
  • C++设计模式单例模式(饿汉、懒汉模式)
  • Linux操作系统从入门到实战(十六)冯诺依曼体系结构,操作系统与系统调用和库函数概念
  • 【软件测试】BUG篇 — 详解
  • AI测试助手如何让Bug无处可藏
  • uni-app 网络请求终极选型:uni.request、axios、uni-network、alova 谁才是你的真命请求库?
  • Eclipse JSP/Servlet:深入解析与最佳实践
  • 繁花深处:花店建设的时代意义与多元应用—仙盟创梦IDE
  • 计算机视觉全景指南:从OpenCV预处理到YOLOv8实战,解锁多模态AI时代(第五章)
  • 【Docker进阶实战】从多容器编排到集群部署
  • [Linux]学习笔记系列 -- [arm][lib]
  • 13. 是否可以在static环境中访问非static变量
  • 如何在 Ubuntu 24.04 LTS Linux 上安装 MySQL 服务器
  • opencv颜色识别项目:识别水果