Linux文件操作

  • Linux文件
    • Linux下的文件类型
      • b 块设备文件---->存储类设备(硬盘)
      • c 字符设备文件--->输入输出设备
      • d 目录文件--->文件夹
      • - 普通文件--> xxx.c xxx.h xxx.txt xxx.jpg xxx.mp4 a.out
      • l 软链接文件-->快捷方式
      • s 套接字文件-->网络通信
      • p 管道文件-->进程之间共享数据
    • 文件操作思想
      • 打开文件
      • 读写文件
      • 关闭文件
    • 文件操作的方法
      • I :input O :output
      • 标准IO
        • C库提供的一套对文件操作的操作方法--->库函数
      • 文件IO
        • Linux内核提供的一套对文件操作的操作方法--->系统调用
    • 流:字节流
      • 文件流:数据从文件流入流出体现出来的字节流
      • 标准IO:
        • FILE--->文件流
        • FILE *--->文件流指针--->已打开文件
  • 一、标准IO
    • 打开文件 fopen
    • 读/写文件 fgetc/fputc(一个字符的读写)、fgets/fputs(一行字符的读写)、fread/fwrite
    • 关闭文件 fclose
    • man手册
      • 第一章节:Linux命令
      • 第二章节:系统调用
      • 第三章节:库函数
    • fopen:FILE *fopen(const char *pathname, const char *mode)
      • 功能:打开一个文件并获得一个文件流指针
      • 参数:
        • pathname:打开得文件的文件名地址
        • mode:打开的方式
        • "r"以只读的方式打开 文件必须存在
        • "r+"以读写的方式打开 文件必须存在
        • "w"以只写的方式打开 文件存在则清空 文件不存在则创建
        • "w+"以读写的方式打开 文件存在则清空 文件不存在则创建
        • "a"以追加写的方式打开 文件不存在创建
        • "a+"以读写的方式打开 文件不存在创建 文件存在则追写
      • 返回值:成功:文件流指针:FILE *;失败:NULL
    • fputc int fputc(int c,FILE *stream)
      • 功能:向文件中写入一个字符
      • 参数:c:要写入的字符;stream:要写入的文件的文件流指针
      • 返回值:成功:写入的字符的ASCII值;失败:EOF(-1)
    • fgetc :int fgetc(FILE *stream);
      • 功能:从文件中读取一个字符
      • 参数:stream:要读取的文件的文件流指针
      • 返回值:成功:读到的字符的ASCII值;失败:EOF;读到文件末尾:EOF
    • fputs : int fputs(const char *s,FILE *stream);
      • 功能:向文件中写入字符串(不会写入字符
      • 参数:s:字符串首地址;stream:要写入的文件流指针
      • 返回值:成功:非负的整形数据;失败:EOF(-1)
    • fgets : char *fgets(char *s,int size,FILE *stream);
      • 功能:从文件中读取一行数据
      • 参数:s:用来存放读取到数据的内存空间首地址; size:希望从文件中读到的字节数; stream:要读取的文件流指针
      • 返回值:成功:返回s空间的首地址; 失败:NULL; 读到文件末尾:NULL
  • 二、主函数传参
    • ./a.out aaa bbb --->实参
    • int main(int argc,const char *argv[])
    • 形参:主函数中的参数
    • argc:程序运行时,给主函数传递的参数个数 3
    • argv:指针数组:argc个指针,分别指向了给主函数传递的实参
      • argv[0]--->"./a.out"
      • argv[1]--->"aaa"
      • argv[2]--->"bbb"
    • 普通文件:
      • 文本文件
      • 二进制文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94942.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux epoll 触发模式详解:LT vs ET

两种核心触发模式 1. 水平触发 (Level-Triggered, LT) 工作方式: 当文件描述符处于就绪状态时,epoll 会持续通知 只要状态未改变,每次调用 epoll_wait 都会返回该描述符 特点: c // 内核处理逻辑 (ep_send_events_proc) if (!(epi->event.events & EPOLLET)) { /…

STM32学习笔记6-TIM-2输出比较功能

第二部分,定时器的输出比较功能OC(Output Compare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4…

MATLAB核心技巧:从入门到精通

一 1.数值 显示 格式 format style 设置 eg: pi format longE; or 2.清除指令 clc 清除命令行窗口 clear 清除工作区 cls 3.搜索路径设置 path(path,E:\ads\) or addpath 4.M文件 用户把要实现的命令写在一个以.m为扩展的文件中,然后由matlab系统进行解读…

AnyDesk远程工具免费版,v9.5.110绿色便携版,秒连远程桌面,剪贴板同步超实用

[软件名称]: AnyDesk远程工具免费版 [软件大小]: 7.5 MB [软件大小]: 夸克网盘 | 百度网盘 软件介绍 AnyDesk 让远程工作变得轻而易举。无论您身处办公室的另一端还是世界的另一侧,只需在设备上下载、安装并启动 AnyDesk.exe,即可轻松访问远程屏幕。…

AI: 给Gemini CLI配上“说明书”, 精通的GEMINI.md项目记忆

嘿,各位技术同好!今天我们来聊一个能极大提升AI编程助手效率的酷炫功能——Google Gemini CLI 中的 GEMINI.md 文件。 在日常开发中,我们越来越依赖像 Gemini 这样的 AI 助手来帮我们写代码、调试 Bug 甚至重构项目。但大家是否遇到过这种情况…

[激光原理与应用-205]:光学器件 - LD与DFB的比较

一、相同点核心原理均基于半导体材料的受激辐射机制,通过电子-空穴复合产生光子。依赖谐振腔实现光反馈与放大,形成激光振荡。采用电泵浦方式驱动,电流注入激发载流子,实现粒子数反转。材料体系主要使用III-V族化合物半导体&#…

Cursor手机版:一半是神,一半是坑

大家好,我是羊仔,专注AI工具、智能体、编程。今天想和大家聊的这个工具,叫Cursor,可能很多朋友已经不陌生了,它作为一款AI原生代码编辑器,之前可谓是风光无两。但最近,它又搞了点新花样&#xf…

康养休闲旅游服务虚拟仿真实训室:筑牢技能人才培养的数字基石

随着康养休闲旅游行业数字化、网络化、智能化发展趋势的深化,行业对高素质技能人才的实践能力和数字素养提出了更高要求。康养休闲旅游服务虚拟仿真实训室作为对接行业需求、创新实践教学模式的重要载体,正成为中等职业教育康养休闲旅游服务专业人才培养…

【Python 高频 API 速学 ⑤】

一、为什么把字典和集合放同一篇? • 底层都是哈希表,API 设计高度对称。 • 日常任务无非「读-写-去重-集合运算」,这 5 个方法就能打穿。二、三件套 & 二板斧一览名称作用返回值原地?dict.get(key, default)安全读取值或 de…

el-tree方法的整理

1.点击树的文字不要收缩仅点击图标的时候收缩 expand-on-click-node&#xff1a;是否在点击节点的时候展开或者收缩节点&#xff0c; 默认值为 true&#xff0c;如果为 false&#xff0c;则只有点箭头图标的时候才会展开或者收缩节点。<el-tree:expand-on-click-node"f…

支持多网络协议的测试工具(postman被无视版)

本文介绍接口调试工具&#xff0c;尽可能覆盖支持多种网络协议。写给一直写http接口&#xff0c;突然调试其他协议接口的开发 在后端开发中&#xff0c;接口调试工具的选择取决于网络协议类型和具体需求。以下是覆盖多种协议的主流工具分类推荐&#xff0c;附关键特点和场景建议…

太阳平近点角详解:概念、计算与应用

太阳平近点角详解&#xff1a;概念、计算与应用 1. 基本定义 **太阳平近点角&#xff08;Mean Anomaly&#xff0c;M&#xff09;**是描述天体&#xff08;如地球&#xff09;在其轨道上平均运动位置的角度参数。对于太阳系中的行星或卫星而言&#xff0c;它表示假设天体以恒定…

ruoyi关闭shiro校验,任何接口可以直接访问

文章目录1.找到ShiroConfig.java文件2.上述适用于get请求&#xff0c;post请求如何关闭&#xff1f;1.找到ShiroConfig.java文件 修改代码 // 原始代码 filterChainDefinitionMap.put("/**", "user,kickout,onlineSession,syncOnlineSession,csrfValidateFilt…

数据结构进阶 详谈红黑树

目录 1. 红⿊树的概念 红⿊树的规则 红⿊树如何确保最⻓路径不超过最短路径的2倍的&#xff1f; 红⿊树的效率&#xff1a; 2. 红⿊树的实现 红⿊树的结构 红⿊树的插⼊ 红⿊树树插⼊⼀个值的⼤概过程 情况1&#xff1a;变⾊ 情况2&#xff1a;单旋变⾊ 情况3&#…

【MySQL】MySQL去重查询详解

前言 在日常的数据库操作中&#xff0c;数据去重是一个非常常见的需求。无论是查询结果去重、数据清洗&#xff0c;还是统计分析&#xff0c;我们都需要掌握MySQL中的各种去重技术。本文将详细介绍MySQL中常用的去重关键字和操作方法&#xff0c;结合实际业务场景&#xff0c;帮…

Pinterest视觉营销自动化:亚矩阵云手机实例与多分辨率适配技术

Pinterest月活突破4.5亿的视觉经济时代&#xff0c;多分辨率适配与跨设备一致性成为品牌触达用户的核心挑战。传统营销因素材模糊、设备参数固化&#xff08;如固定分辨率1080P&#xff09;、行为机械化&#xff08;如定时批量上传&#xff09;&#xff0c;导致点击率低于行业均…

01数据结构-图的邻接矩阵和遍历

01数据结构-图的邻接矩阵和遍历1.图的遍历1.1深度优先遍历1.2广度优先搜索2.邻接矩阵的代码实现1.图的遍历 1.1深度优先遍历 深度优先搜索的过程类似于树的先序遍历&#xff0c;首先从例子中体会深度优先搜索&#xff0c;例如下图1是个无向图&#xff0c;采用深度优先算法遍历…

OpenAI发布的GPT-5 更新了哪些内容,它的核心能力有哪些?AI编码能力这么强,前端程序员何去何从?

目录**1. GPT-5的核心能力与技术突破****1.1 智能水平的质变****1.2 代码生成与优化****1.3 上下文处理与长文本能力****1.4 安全与可靠性改进****2. GPT-5的应用场景与案例****2.1 医疗领域****2.2 教育与学习****2.3 企业级应用****2.4 软件开发****3. 技术细节与创新****3.1…

【无标题】AI 赋能日常效率:实用案例与操作心得分享

大语言模型&#xff08;LLM&#xff09;早已不再是实验室里的专属品&#xff0c;而是逐渐渗透到我们工作与生活的方方面面。从繁琐的文档处理到复杂的信息筛选&#xff0c;从学习辅助到日常规划&#xff0c;AI 正以 "微生产力" 的形式重塑我们的效率边界。本文将分享…

Java-线程线程的创建方式

一.进程和线程进程&#xff1a;进程是资源分配的基本单位&#xff0c;每个进程都有自己独立的内存空间&#xff0c;可以看作是一个正在运行的程序实例线程&#xff1a;线程是CPU调度的基本单位&#xff0c;属于进程&#xff0c;一个进程可以包含多个线程。线程共享进程的内存空…