自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux命令chmod后为什么有时候是四位数字参数(如0755)?【秒懂】

和一般情况的chmod用法不同,有时我们会发现参数竟然有四位数字!

2022-09-27 14:41:14 2974 1

原创 Linux Shell脚本入门

Linux Shell脚本入门什么是Shell脚本shell脚本。首先它是一个脚本,并不能作为正式的编程语言,其为跑在Linux的Shell里的脚本。其出现的目的是为了将原本需要执行的很多Linux命令简化操作,将其自动的执行,省时省力。凡是自定义的脚本建议放到/usr/local/sbin/目录下,这样做的目的是,一来可以更好的管理文档;二来以后接管你的管理员都知道自定义脚本放在哪里,方便维护如何编写Shell脚本以.sh为后缀名的文件基本就是Shell脚本了,但是也并不是.sh对脚本来说是必要

2022-01-10 17:03:08 177

原创 AT指令集介绍

AT指令集介绍什么是AT指令集?用户进行呼叫、短信、电话本、数据业务、传真等方面的控制时,可以使用的一种指令集。AT 即Attention。协议本身采用文本.每个命令均以AT打头,因此得名。优点命令简单易懂,并且采用标准串口来收发AT命令,这样对设备控制大大简化了,转换成简单串口编程了。AT命令提供了一组标准的硬件接口–串口。这个简化的硬件设计较新的电信网络模块,几乎都采用串口硬件接口。AT命令功能较全,可以通过一组命令完成设备的控制,完成呼叫、短信、电话本、数据业务、传真.指令格式AT指令

2021-11-29 14:54:35 3185

原创 Linux内核修改配置与整体MakeFile检查not clean冲突解决方法(图文)

Linux内核修改配置与整体MakeFile检查not clean冲突解决方法背景最近因为项目需求,需要更改Android平台下Linux底层内核相关配置,但是更改后整体Make后会报错,报错信息为:通过去MakeFile文件中错误信息判断的对应行查看报错逻辑:可得知是因为在内核目录下已经存在.config文件,或者在内核目录下存在/include/config路径,如果符合,就会报is not clean错误信息。但是之前我是通过make menuconfig方法去配置内核,配置完后必定会在

2021-11-25 10:23:30 2309

原创 Linux线程调度策略以及优先级实验(图文)

Linux线程调度策略以及优先级实验什么是线程调度策略?Linux内核共有三种调度算法,他们分别是:1、SCHED_OTHER 分时调度策略,2、SCHED_FIFO实时调度策略,先到先服务3、SCHED_RR实时调度策略,时间片轮转其中,SCHED_FIFO与SCHED_RR属于实时策略,SCHED_OTHER属于分时策略。实时策略线程将得到优先调用,实时策略线程根据实时优先级决定调度权值,分时策略线程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越

2021-11-04 10:07:44 4524

原创 简单this指针

this指针作用:因为对象模型中共享代码,所以要识别在方法中访问哪个对象的成员,编译器会在每个方法中加入一个形参该对象的指针(this)对象大小:用同一个类实例的对象,他们各自拥有成员变量的空间,共享代码(函数、方法)空间。编译时,遇到共享的函数方法空间,会重定义函数printA(Test *this)class Test{public:int a;int b;void printA(){cout << a << endl; //cout << t

2021-02-01 14:43:23 60

原创 c语言实现栈及栈的基本操作

C语言实现栈的操作(初始化、入栈、出栈、取栈顶)(数组)#include <stdio.h>#define SIZE 10struct stack{int stack[SIZE];int stack_size;};//栈顶元素int top(struct stack * s){return s->stack[SIZE - 1];}//入栈void push(struct stack* s,int num){if(s->stack_size == 0)

2021-02-01 14:42:53 1287

原创 C++四种类型转换

C++依然存在隐式类型转换int num = 5;double b = num;不安全,无类型检查强制类型转换运算符(不是一个函数):static_castdouble b =static_cast(num);、转换成double类型char ch = static_cast(num);void与任意类型指针之间的转换int p_num = #void* ptr = static_cast<void*>(p_num);int* p2 = static_cast<int

2021-02-01 14:42:23 146

原创 string类、迭代器、vector类

string类可变长1、用多少不够用现增加 malloc2、先预留再释放不需要的部分 reverse() shrink_to_fit()操作字符串目标:实现MyString任务:学会使用string类成员函数(初始化、插入、比较、查找、删除、遍历、替换)头文件 #include string s = “hello world”;初始化string s = “hello world”;string si( “hello world”);string s1(s2);string s

2021-02-01 14:41:53 180

原创 一些c++基础相关笔记

constC:将变量修饰为只读变量const int a = 1;int *p = &a;*p = 2;cout << a << endl;输出结果2const修饰变量虽然不能直接用变量名修改,但是可以通过指针等方法修改地址来操作。传递函数形参(保护函数实参不在函数执行过程中被修改)函数接口的安全性传值(只使用不修改实参)传地址(既使用也修改实参)C++:const修饰的变量就是常量指针或者引用类型,一定是const对constconst int

2021-01-29 02:04:22 75

原创 C++类与对象

C++结构体升级struct(结构体)—class(类)结构体:变量加函数类:成员加方法C++中使用结构体时可以直接使用结构体名,不用再加structC++中结构体中成员可以时是函数class Student{public:int num;//成员变量、属性char * name;int age;void display()//方法{cout << "num = " << num;cout << "name = " << name

2021-01-29 02:03:44 131

原创 2021-01-29

#include 头文件 io流(输入输出,文件读写)c 到 c++升级1:命名空间:作用:防止命名冲突(多人协同开发出现命名冲突:全局变量,函数命名冲突)using namespace std;命名空间定义:namespace 名字{}(在主函数之前)命名空间可以嵌套定义A::B::Cnamespace A{int count = 5;}namespace B{int count = 6;}int main{return 0;}命名空间的使用:方式一:名字::(

2021-01-29 02:03:14 99

原创 常见指针变量的定义

常见指针变量的定义定 义 含 义int *p; p 可以指向 int 类型的数据,也可以指向类似 int arr[n] 的数组。int **p; p 为二级指针,指向 int * 类型的数据。int *p[n]; p 为指针数组。[ ] 的优先级高于 *,所以应该理解为 int *(p[n]);int (*p)[n]; p 为二维数组指针。int *p(); p 是一个函数,它的返回值类型为 int *。int

2021-01-28 00:36:54 313

原创 指向数组的指针

数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素。在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向:#include <stdio.h>int main(){int arr[] = { 99, 15, 100, 888, 252 };int len = sizeof(arr) / sizeof(int); //求数组长度int i;

2021-01-28 00:36:23 220

原创 数组倒序输出

数组倒序输出#include <stdio.h>#include <stdlib.h>#define I (sizeof(arr)/sizeof(arr[0]))void show(int arr[], int len){int i = 0;for(;i<len;i++){printf("%d", arr[i]);}printf("\n");}void Reverse(int arr[], int len){int temp;int i = 0;fo

2021-01-28 00:35:51 441

原创 #if、##ifdef、#ifndef

预处理指令是以#号开头的代码行,# 号必须是该行除了任何空白字符外的第一个字符。指令 说明空指令,无任何效果#include 包含一个源代码文件#define 定义宏#undef 取消已定义的宏#if 如果给定条件为真,则编译下面代码#ifdef 如果宏已经定义,则编译下面代码#ifndef 如果宏没有定义,则编译下面代码#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码#endif 结束一个#if……#else条件编

2021-01-26 15:10:09 718

原创 C语言带参数的宏定义

C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。带参宏定义的一般形式为:#define 宏名(形参列表) 字符串例如:#define M(y) yy+3y //宏定义// TODO:k=M(5); //宏调用在宏展开时,用实参 5 去代替形参 y,经预处理程序展开后的语句为k=55+35。输出两个数中较大的数#include <stdio.h&gt

2021-01-26 15:09:36 1582 2

原创 #define 宏定义

#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。#include <stdio.h>#define N 100int main(){int sum = 20 + N;printf("%d\n", sum);return 0;}输出结果:120#define N 100就是宏定义,N为宏名,100是宏的内容(宏所表示的字符串)。在预处理阶段,对程序中所有出现

2021-01-26 15:08:50 2797

原创 定义一个函数gcd,功能为求a与b的最大公约数

#include <stdio.h>//函数声明int gcd(int a, int b); //也可以写作 int gcd(int, int);int main(){printf(“The greatest common divisor is %d\n”, gcd(100, 60));return 0;}//函数定义int gcd(int a, int b){//若a<b,那么交换两变量的值if(a < b){int temp1 = a; //块级变量a

2021-01-26 15:07:48 1267

原创 局部变量和全局变量

形参变量要等到函数被调用时才分配内存,调用结束后立即释放内存。这说明形参变量的作用域非常有限,只能在函数内部使用,离开该函数就无效了。所谓作用域(Scope),就是变量的有效范围。局部变量定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。例如:int f1(int a){int b,c; //a,b,c仅在函数f1()内有效return a+b+c;}int main(){int m,n; //m,n仅

2020-11-09 20:56:13 272

原创 return相关

没有返回值的函数为空类型,用void表示。例如:void func(){printf(“http://c.biancheng.net\n”);}一旦函数的返回值类型被定义为 void,就不能再接收它的值了。例如,下面的语句是错误的:int a = func();为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为 void 类型。return 语句可以有多个,可以出现在函数体的任意位置,但是每次调用函数只能有一个 return 语句被执行,所以只有一个返回值(少数的编程语言支持

2020-11-09 20:55:20 179

原创 简单数组相关

数组int a[4];我们把这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),例如int a[4];就定义了一个长度为4的整型数组,名字是a。数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为下标(Index)将1~10存放在数组中:#include <stdio.h>int main(){int nums[10];int i;//将1~10放入数组中fo

2020-11-09 20:54:50 61

原创 结构体

结构体结构体写在int main()前struct 结构体名 {成员表列};写复数:实部r 虚部vstruct Plural {int r;int v;};也可以简洁为:typedef struct {int r;int v;} Plural;不能将一个结构体变量作为一个整体进行输入和输出。例如: 已定义student1和student2为结构体变量并且它们已有值。printf(″%d,%s,%c,%d,%f,%\n″,student1); 错误(2) 可以引

2020-11-09 20:54:11 248

原创 2020年十一月二日写的简单九九乘法表

#include <stdio.h>int main(){int i = 1;int j = 1;while(1){printf(" %d*%d=%-2d “, i, j, i*j);if(i == j){printf(”\n");j++;i = 1;}else{i++;}if(j == 10){break;}}return 0;}#include <stdio.h>int main(){int i, j;for(i=1; i<=

2020-11-09 20:53:30 100

原创 break和continue用法

当 break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。在多层循环中,一个 break 语句只向外跳一层。输出一个44的整数矩阵#include <stdio.h>int main(){int i=1, j;while(1){ // 外层循环j=1;while(1){ // 内层循环printf("%-4d", ij);j++;if(j>4) break;

2020-11-09 20:52:03 176

原创 循环与选择结构 for

forwhile循环较为松散,可以用更紧凑的for循环。for(表达式1;表达式2;表达式3){语句块}先执行表达式1,再执行表达式2,若为真则执行循环体,否则结束循环,执行完循环体后执行表达式3,重复23,直到表达式2为假时终止循环。表达式1只执行1次。也可写为:for(初始化语句;循环条件;自增或自减){循环内容}求1到100的和int i;int sum=0;for(i=1;i<=100;i++){sum+=i;}printf("%d\n", sum);表达式

2020-11-09 20:51:33 216

原创 循环与选择结构 while do while

whilewhile(表达式){语句块}先计算表达式的值,若为真,则执行语句块,之后再次计算表达式的值,若仍为真则继续执行语句块,如此循环直至表达式为假。用while循环计算1-100的和的值#include <stdio.h>int main(){int i=1,sum = 0;while(i<=100){sum+=i;i++;}printf("%d", sum);return 0;}while(1)即为一直执行while循环,直至用户强制关闭。whil

2020-11-09 20:50:44 138

原创 结构体链表大型例题(手机联系人通讯录程序)

#include <stdio.h>#include <string.h>/**定义一个联系人节点,包括联系人数据,还有下一个联系人节点的地址/typedef struct Contact {char name[50];char tel[11];struct Contact next;struct Contact* prev} Contact;/**定义一个通讯录,包括链表定义1:有一个节点,叫头节点,不存数据,只指向第一个节点链表定义2:有一个指针

2020-11-03 22:49:55 287

原创 判断选择结构 switch case

循环结构与选择结构(switch case)switch case分支过多时。用if else处理不方便,容易混乱,所以使用switch case语句switch(表达式){case 整形数值1:语句1;break;case 整形数值2:语句2;break;case 整形数值3:语句3;break;default:语句4;检验表达式与每个case后的值相等与否,若相等,就执行那个case冒号后的语句(若无break跳出执行后面所有分支case),若没有任一case相等,即执行d

2020-11-03 22:49:00 149

原创 判断选择结构if else

循环结构与选择结构if elseif(判断条件){语句块1}else{语句块2}if(a>b){printf(“a比b大”);}else{printf(“a比b小或a=b”)需要依次判断条件,可多个使用if else结构if(条件1){语句块1}else if(条件2){语句块2}else if (条件3){语句块3}嵌套(else总是与它前面最近的if配对)if(a!= b){if(a>b){printf(“a大于b”);else {printf

2020-11-03 22:48:21 175

原创 什么是?:(条件运算符)

?:先对表达式1做真假检测若表达式1为真,则返回表达式2的值。若表达式1为假,则返回表达式3的值。

2020-10-27 16:32:57 8363

原创 输入年份和天数,得知几月几日

输入某个月的第N周和这一周的第M天,通过int*GetDay()函数获取参数并返回结果,来得出这一天是这个月的第多少天?闰年:(年数是4的倍数时一般都是闰年,但当年份是100的倍数时,必须是400的倍数才是闰年)#include <stdio.h>#include <stdlib.h>char isRn(int year){return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;}int

2020-10-27 16:31:50 839

原创 200~300之间不能被3整除的数,5个一行输出

#include <stdio.h>#include <stdlib.h>int main(){int a=200;int b=0;for(;a<=300;a++){if(a % 3 != 0){printf("%d “, a);b++;if(b==5){printf(”\n");b=0; } }}return 0;}

2020-10-25 17:28:36 1492

原创 一些简单例题

打印日历,用户输入年分和月份两个变量,系统计算该月份的1号是星期几,并计算该月有多少天。最后打印出该日历。已知:1900年1月1日是星期一#include <stdio.h>#include <stdlib.h>int isRn(int year){ return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;}int main (void) {int year = 2025, month

2020-10-25 17:27:04 132

原创 数据类型相关

整型常量十进制:18、-31long int型常量 123l、123L、123456l、123456Lunsigned int型常量 123u、 123U根据实际数据大小确定int型还是long型l以数字“0”开始的整型常量是八进制数022、-037010和10大小不一样因为八进制并不常用,所以此种表示法比较少见l以“0x”或者“0X”开始的整型常量是十六进制AF和af用来表示十进制的10~15十六进制的形式比较常用:0x12、-0x1F, -0x1f实型常量十进制小数形式 :12

2020-10-25 17:25:15 278

原创 2020-10-24

最近几天学校的实习与课程事情比较多,还要考虑租房子的事情,没什么时间好好过一遍c,没办法了????

2020-10-24 14:47:33 38

原创 LINUX用户管理与文件权限管理相关命令

LINUX 用户管理与文件权限管理相关命令useradd 创建新用户useradd yuchenuseradd -g student yuchen 添加新用户时并指定组passwd yuchen 更改用户密码groupadd 创建一个新的工作组groupadd studentuserdel 删除用户账号userdel -r 删除用户账号及删除用户登入目录以及目录中所有文件(不删可能会保留垃圾文件)userdel -r yuchengroupdel 删除群组groupdel

2020-10-20 17:29:59 97

原创 2020-10-19

记录一些上的第一节linux命令课所做的笔记希望以后回来看看会有所感悟Open in Terminalreboot 重启 shutdown 关机ls 显示指定工作目录下内容ll(ls -l)亦将各种文件咨询显示出(ll -i显示更多参数)cal 日历 cal -1 查看本月月历 cal -3 查看前一个月 本月 下一个月月历cal -y查看全部月月历cat 打开文件 cat hello.txt(无文件将创建同名文件)echo 显示一段字符echo -e “xx” xx

2020-10-19 19:38:08 103 1

原创 2020-10-19

LINUX/bin 常用命令目录 可执行二进制目录文件/boot 启动程序/dev 设备文件/etc 启动关闭 配置 文件/home 根目录(普通用户)/root 超级用户工作目录(权限最大用户)/sbin 管理员常用管理目录/lib 共享链接库(库文件)/tmp 临时文件/proc 操作系统实时信息...

2020-10-19 19:36:36 140

原创 2020-10-17

今天开始了第一天的嵌入式学习,希望这条路可以让我喜欢上并达到人生高峰。

2020-10-17 18:42:40 51

调试安卓可以直接使用的iw工具集

iwpriv iwlist iwconfig

2022-05-10

Linux iw工具【iwpriv iwlist等】

工具文件

2022-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除