Linux入门以及Linux文件编程学习

Linux学习必备

首先我们学习Linux必须安装一个虚拟机,我是跟着韦东山老师安装的,具体可以跟着视频操作,简单易懂:安装虚拟机

Linux入门最基本简单的指令

一、Vi的使用
Vi+文件名 创建或者打开一个文件,进入默认命令行模式,此时你不可以输入代码,只有在输入模式下你才可以输入你的代码,按下字母【i】即可进入输入模式你就可以随便输入你想输入的内容了,按下【ESC】退出输入模式进入命令行模式,在命令行模式下,按下“:”冒号,在输入wq,即可保存内容退出文件!
二、gcc编译工具&运行程序
gcc a.c -o a a.c–你要编译的文件 a–编译生成的程序名
./a ___ ___… a–程序名 运行程序 ____ 处可以填你写的函数的参数
在这里插入图片描述
运行结果以及打印出来的:
在这里插入图片描述

三、常用指令
ls 列出当前文件夹有哪些文件
ls -a 显示所有文件,包含隐藏的文件和文件夹
pwd 显示当前在哪个文件夹
mkdir+文件夹名 创建一个文件夹
cd+文件夹名字 进入文件夹
cd… 退回上层文件夹
rm 文件名 删除文件
touch 文件名 创建文件
cp 文件名1 文件名2 将文件1的内容复制粘贴到文件2(存在直接粘贴,不存在就创建)

Linux文件编程

常用函数

一、生成文件函数
在这里插入图片描述
二、打开文件亦可创建文件
在这里插入图片描述
返回一个“标记量”,类似于FreeRTOS中创建任务时返回的句柄。
关闭文件函数:close(a); a–“标记量”
三、写入函数

四、读取函数
参数表明和使用方式和写入函数相似
在这里插入图片描述
五、光标移动函数
在这里插入图片描述
光标位置的重要性:假如你刚刚在代码里面创建了一个文件,并且在里面写入了内容,那么现在光标的位置就位于文件内容尾部,然后现在你想读出来,那么将会什么都读不到,因为读取函数是默认从光标位置往后读的,所以现在你就要调整光标的位置。
利用光标移动函数也可以利用它的返回值巧妙的读取出文件夹内容的字节大小可以在下面小试验中看一下!
六、利用常用函数实现cp功能
在这里插入图片描述

另外一套函数

其他一套函数是来自stdio.h里面的,主要函数有:
在这里插入图片描述
一、fopen函数
在这里插入图片描述
二、fwrite函数
在这里插入图片描述
参数胡说明 :
const void *ptr : 指针指向要写出数据的内存首地址 ;
size_t size : 要写出数据的 基本单元 的字节大小 , 写出单位的大小 ;
size_t nmemb : 要写出数据的 基本单元 的个数 ;
FILE *stream : 打开的文件指针 ;
返回值说明 : size_t 返回值返回的是参数 nmemb;
三、fread函数
在这里插入图片描述
void *buffer 参数 : 将文件中的二进制数据读取到该缓冲区中 ;
size_t size 参数 : 读取的 基本单元 字节大小 , 单位是字节 , 一般是 buffer 缓冲的单位大小 ;如果 buffer 缓冲区是 char 数组 , 则该参数的值是 sizeof(char) ;如果 buffer 缓冲区是 int 数组 , 则该参数的值是 sizeof(int) ;
size_t count 参数 : 读取的 基本单元 个数 ;
FILE *stream 参数 : 文件指针 ;size_t 返回值 : 实际从文件中读取的 基本单元 个数 ; 读取的字节数是 基本单元数 * 基本单元字节大小 ;
四、fseek函数和fclose函数
使用方式和seek函数以及close函数没有很大区别!
五、fgetc、fputc、feof函数
在这里插入图片描述
参数为要读取的文件的文件指针变量

返回值
读取成功返回读取到的字符
读取到文件末尾或读取失败则返回EOF
在这里插入图片描述
fputc()函数有两个参数character和stream:
参数character是写入指定流stream的字符,类型为int;
参数stream是一个指向FILE类型结构的指针;stream指定了fputc()函数要写入的流,可以是文件流,也可以是标准输出流;当是文件流时,stream就是fopen()函数的返回值;当是标准输出流时,stream就是stdout。
在这里插入图片描述
六、两个综合小测验
打印字符串进一个文件里面
在这里插入图片描述
在一个文件里面获取内容,然后一个个打印出来
在这里插入图片描述

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

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

相关文章

notes for datawhale summer camp NPL task3

了解 Transformer 模型,并基于 Transformer 模型实现在机器翻译任务上的应用! Transformer 介绍 基于循环或卷积神经网络的序列到序列建模方法是现存机器翻译任务中的经典方法。然而,它们在建模文本长程依赖方面都存在一定的局限性。 为了…

[PM]产品运营

生命周期 运营阶段 主要工作 拉新 新用户的定义 冷启动 拉新方式 促活 用户活跃的原因 量化活跃度 运营社区化/内容化 留存 用户流失 培养用户习惯 用户挽回 变现 变现方式 付费模式 广告模式 数据变现 变现指标 传播 营销 认识营销 电商营销中心 拼团活动 1.需求整理 2.…

大数据之路 读书笔记 Day7 实时技术 简介及流式技术架构

回顾: Day6 离线数据开发之数据开发平台Day5 数据同步遇到的问题与解决方案 1. 简介 阿里巴巴在流式数据处理方面采用了多种技术和框架,这些技术的特点包括: 高可伸缩性: 阿里巴巴使用Apache Flink进行大规模数据处理&#xff0c…

Springboot项目远程部署gitee仓库(docker+Jenkins+maven+git)

创建仓库 创建一个Springboot项目,勾选web将该项目创建git本地仓库,再创建远程仓库推送上去 创建TestController RestControllerRequestMapping("/test")public class TestController {GetMapping("/hello")public String sayHell…

6.Kafka Acks详解

目录 概述Replication(分区副本)In-sync replicasAcknowledgementsacks0acks1acksallAck实用建议Minimum in-sync replicaCaveat(警告) 概述 本文对 kafka 的一些核心概念进行解释,也是 kafka 需要调优的一些地方。 官方原文速递 Replication(分区副本) 对于每个分…

222.买卖股票的最佳时机(力扣)

代码解决 class Solution { public:int maxProfit(vector<int>& prices) {// 初始化最小买入价为第一个价格int min1 prices[0];// 初始化最大利润为0int max1 0;// 从第二天开始遍历价格数组for (int i 1; i < prices.size(); i) {// 计算当前价卖出的利润&a…

windows edge自带的pdf分割工具(功能)

WPS分割pdf得会员&#xff0c;要充值&#xff01;网上一顿乱找&#xff0c;发现最简单&#xff0c;最好用&#xff0c;免费的还是回到Windows。 Windows上直接在edge浏览器打开PDF&#xff0c;点击 打印 按钮,页面下选择对应页数 打印机 选择 另存为PDF&#xff0c;然后保存就…

硬件开发——UART/I2C/SPI协议

硬件开发——UART/I2C/SPI协议 小狼http://blog.csdn.net/xiaolangyangyang 1、UART 电压&#xff1a; TTL电平&#xff1a;1&#xff1a;&#xff08;3.3V~5V&#xff09;&#xff0c;0&#xff1a;&#xff08;0V&#xff09;RS232电平&#xff1a;1&#xff1a;&#xff0…

【C++题解】1212. 移动数组元素

问题&#xff1a;1212. 移动数组元素 类型&#xff1a;数组找数 题目描述&#xff1a; 在一个不重复的数组中&#xff0c;请将这个数组的最小数和数组第一个数交换&#xff0c;最大数和数组最后一个数交换。 输入&#xff1a; 第一行有一个整数 n ( 5≤n≤100 &#xff09;…

浅谈端到端(自动驾驶)

一、 引言 端到端是近期非常火的话题&#xff0c;尤其在自动驾驶、具身智能等领域。去年UniAD的发布&#xff0c;给大家普及了端到端的网络设计&#xff0c;带动了行业的发展。产业界&#xff0c;特斯拉FSD Beta V12效果惊艳&#xff0c;近期理想也推出了双系统的E2E自动驾驶系…

MySQL 分组函数

目录 1. 单/多行处理 2. 分组函数分类 3. 分组函数组合使用 4. 注意 1. 单/多行处理 分组函数又被叫做多行处理函数&#xff08;多个输入&#xff0c;一个输出&#xff09;&#xff1b; 前面提到的数据处理函数又叫做单行处理函数&#xff08;一个输入&#xff0c;一个输出…

<Qt> 信号和槽

目录 一、信号和槽概述 二、信号和槽的使用​​​​​​ &#xff08;一&#xff09;connect函数 &#xff08;二&#xff09;实现一个点击按钮关闭窗口的功能 &#xff08;三&#xff09;再谈connect 三、自定义槽函数 四、自定义信号 五、带参数的信号和槽 六、信号…

哈喽GPT-4o,程序员如何通过GPT-4o保护自己的合法权益

目录 一、法律研究Prompt&#xff1a;派遣合同和劳务外包合同有什么区别&#xff1f;详细说一下在被裁员时的区别&#xff1f; 二、法律条文检索Prompt&#xff1a;检索《劳动合同法》&#xff0c;以下情况属于第几条&#xff0c;如果公司进行技能考试&#xff0c;并以技能考试…

在Ubuntu上安装redis

Ubuntu上安装redis 一、通过下载redis的压缩包安装二、通过apt包管理器安装Redis三、修改redis的配置文件四、控制redis启动 Redis是一种开源的内存数据存储&#xff0c;可以用作数据库、缓存和消息代理等。本文将会介绍两种不同的安装方式&#xff0c;包括通过压缩包安装以及通…

求职学习day5

安排明天hr面 投一下平安可能。 hr面准备&#xff0c;复习java核心技术&#xff0c;复习java项目。 正视自己&#xff0c;调整心态。 也是很早接触了javaguide但是没有持续学习&#xff0c;项目介绍 | JavaGuide&#xff0c;面试前复习一下感觉还是很有收获的。 还有一些…

studio编译报错java.lang.NullPointerException

安卓studio编译报错&#xff0c;这个是一个新建的项目就报错&#xff0c;原因是 implementation androidx.appcompat:appcompat:1.7.0版本太高&#xff0c;修改后版本 implementation androidx.appcompat:appcompat:1.4.0&#xff0c; 编译又报错 18 issues were found wh…

【MQTT(3)】开发一个客户端,QT-Android安卓手机版本

手机版本更加方便 生成安卓库 参考了这个代码 在编译Mosquitto以支持安卓平台时&#xff0c;主要涉及到使用Android NDK&#xff08;Native Development Kit&#xff09;进行交叉编译。环境的准备参考之前的博客【QT开发&#xff08;17&#xff09;】2023-QT 5.14.2实现Andr…

视频联网共享平台LntonCVS视频监控汇聚平台视频云解决方案

LntonCVS流媒体平台是一款遵循国家GB28181标准协议的先进视频监控与云服务平台。该平台设计独特&#xff0c;能够同时接入并处理多路设备的视频流&#xff0c;支持包括RTSP、RTMP、FLV、HLS、WebRTC在内的多种视频流格式的分发。其功能丰富多样&#xff0c;涵盖了视频直播监控、…

进程与线程(一)进程相关

目录 一. 概念二 . 组成进程控制块程序段数据段 三. 特征四. 进程的状态与转换五. 进程控制进程创建进程终止进程阻塞与进程唤醒进程切换 六. 进程通信共享存储消息传递管道通信 一. 概念 多道程序环境下&#xff0c;允许多个程序并发执行&#xff0c;此时它们将失去封闭性&…

Linux-交换空间(Swap)管理

引入概念 在计算机中&#xff0c;硬盘的容量一般比内存大&#xff0c;内存&#xff08;4GB 8GB 16GB 32GB 64GB…&#xff09;&#xff0c;硬盘&#xff08;512GB 1T 2T…&#xff09;。 冯诺依曼的现代计算机结构体系里面的存储器就是内存 内存是一种易失性存储器&#xff0c…