- 博客(37)
- 收藏
- 关注
原创 【linux】TCP网络编程及Web服务器搭建
默认的情况下,如果一个网络应用程序的一个套接字 绑定了一个端口( 占用了 8000 ),这 时候,别的套接字就无法使用这个端口( 8000 )端口复用:允许在一个应用程序可以把 n 个套接字绑在一个端口上而不出错 SO_REUSEADDR可以用在以下四种情况下。(摘自《Unix网络编程》卷一,即UNPv1)当有一个有相同本地地址和端口的socket1处于TIME_WAIT状态时,而你启动的程 序的socket2要占用该地址和端口,你的程序就要用到该选项。
2024-11-12 19:20:59
1043
1
原创 【linux】dup文件描述符复制函数和管道详解
管道(pipe)又称无名管道。 无名管道是一种特殊类型的文件,在应用层体现为 两个打开的文件描述符(读端和写端)。
2024-06-21 20:41:04
962
原创 [Qt]Qt框架解析:从入门到精通,探索平台开发的无限可能
Qt是一个跨平台的C++图形用户界面应用程序框架(GUI)。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。开发环境为Qt creator5.8.0,下载网址:http://download.qt.io/archive/qt/
2024-06-21 20:40:11
3599
原创 【物联网应用】基于云计算的智能化温室种植一体化平台
基于农业数学模型,通过温室环境监测和计算,可以精准预测病虫害的发生规律,为植保管理提供决策,更进一步,可以在不影响作物生长的前提下进行环境干预,来预防病虫害的发生和流行:通过采集大量高密度的环境温湿度数据、农作物生长状况数据,通过人工智能和云计算技术,计算和预测病害发生临界点,通过系统给管理者发送植保预警信息,同时指导物联网系统主动开启通风除湿系统等设备采取干预措施,阻止病害发生和流行,有效促进了植保管理中的绿色防控。利用大数据和机器学习算法,对温室内的环境变化进行预测,并制定相应的调节策略。
2024-03-18 21:40:22
3744
1
原创 【linux】进程管理:进程控制块、进程号、fork创建进程、特殊进程及exec函数族解析
可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是动态的。
2024-03-14 21:49:17
1614
1
原创 [linux]信号处理:信号编码、基本API、自定义函数和集合操作的详解
信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次 上对中断机制的一种模拟,是一种异步(不等待)通信的方式 。信号可以导致一个正在运行的进程被 另一个正在运行的异步进程中断,转而处理某一个突发事件。
2024-03-14 21:44:06
1100
原创 【物联网】stm32芯片结构组成,固件库、启动过程、时钟系统、GPIO、NVIC、DMA、UART以及看门狗电路的全面详解
Cortex-A:针对多媒体应用Cortex-R:针对对实时性和性能有一定要求的场景Cortex-M:针对低功耗高性能的场景Cortex-M0、Cortex-M3、Cortex-M4指令集:精简指令集
2024-03-04 17:20:00
2645
1
原创 【linux】linux系统调用及文件IO操作
在 Linux的世界里一切设备皆文件,我们可以系统调用I/O 的函 数(I:input,输入;0:output..输出),对文件进行相应的操作 ( open()、close()、write()、read()等。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件。这个文件描述符相当于这个已打开文件的标号,文件描述符是非负整数,是文件的标识,操作这个文件描述符相当于操作这个描述符所指定的文件。Linux将系统调用 打开或新建的文件 用非负整数来表示。
2024-03-04 17:01:10
1477
原创 [linux]shell脚本语言:变量、测试、控制语句以及函数的全面详解
shell脚本是一种脚本语言,我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的环境下执行。shell 脚本主要用于帮助开发人员或系统管理员将复杂而又反复的操作放在一个文件中,通过简单的一步执行操作完成相应任务,从而解放负担。
2024-03-04 17:00:01
1195
原创 【数据库】SQLite的基本指令、数据约束、联结表、触发器及索引的使用技巧
SQLite 是一个开源的、内嵌式的关系型数据库,第一个版本诞生于 2000 年 5 月,目前最高版本为 SQLite3。
2024-03-01 16:33:21
5008
原创 【数据库】深入了解MySQL数据库:操作指令、数据约束、联结表和视图的使用
数据库( DataBase,DB)从本质上讲就是一个文件系统,它能够将数据有组织地集 合在一起,按照一定的规则长期存储到计算机的磁盘中,并且能够供多个用户共享和使用, 同时,用户能够对数据库中的数据进行插入、删除、修和查询操作。
2024-03-01 16:28:30
1068
原创 【第十天】C++函数对象/仿函数、谓词、适配器及常见algorithm算法
重载了函数调用运算符()的类 实例化的对象叫函数对象,也叫仿函数。如果函数对象 有一个参数 叫:一元函数对象/仿函数如果函数对象 有二个参数 叫:二元函数对象/仿函数如果函数对象 有三个及以上参数 叫:多元函数对象/仿函数
2024-02-29 20:06:41
921
原创 [第九天】C++的string类以及STL标准模板库(万字详细解说)
为提高复用性,建立数据结构和算法的一套标准,诞生了STL(Standard Template Library,标准模板库),STL从广义上分为三大组件:容器(container)、算法(algorithm)、迭代器(iterator),容器和算法之间通过迭代器进行无缝连接。.STL几乎所有的代码都采用.模板类或者模板函数,这相比传统的由函数和类组成的库来说提供了更好的代码重用机会。
2024-02-29 20:04:49
1088
原创 【第八天】C++异常的抛出、捕获以及标准异常库
异常:是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要 读取的文件不存在,空指针,内存不足,访问非法内存等等)。(异常是一个类。)异常处理就是处理程序中的错误。
2024-02-24 20:45:03
1944
原创 【第七天】C++模板探秘:函数模板、类模板以及类型转换的深入解析
函数模板(类模板):将功能相同,类型不同的函数(类)的类型抽象成虚拟的类型(函数类型和形参类型不具体指定)。不必定义多个函数,当调用函数(类实例化对 象)的时候,编译器自动将虚拟的类型 具体化。
2024-02-24 20:44:36
1104
原创 【第六天】c++虚函数多态
定义及用法:父类成员函数前加virtual修饰,该函数即为虚函数子类重写父类虚函数:函数名、返回值类型、参数类型个数顺序完全一致。动态多态条件:有继承、子类重写(覆盖)父类的虚函数,父类指针 指向子类空间。重载:同一作用域,同名函数,参数的顺序、个数、类型不同 都可以重载。函数的返回值 类型不能作为重载条件(例:函数重载、运算符重载)重定义:有继承,子类 重定义 父类的同名函数(非虚函数), 参数顺序、个数、类型可以 不同。子类的同名函数会屏蔽父类的所有同名函数(可以通过作用域解决)
2024-02-06 20:21:35
1423
原创 [第五天】C++继承:单继承、多继承、菱形继承和虚继承的深度解析
class 父类{};class 子类:继承方式 父类名//新增子类数据继承方式:private protected public(推荐)公共继承 保持不变,保护继承变保护,私有继承变私有,所有父类私有在子类中不可见。子类虚继承父类 子类只会保存一份公共数据。方式:在继承方式 前加virtual修饰。
2024-02-06 20:19:15
1902
原创 【第四天]C++高级类和对象:运算符重载、string类和智能指针的深度解析
运算符重载 是,不能创建新运算符。运算符重载关键字operator语法:operator@ (@表示被重载的运算符)思路:1、弄懂 函数的参数中参数个数取决于运算符是一元还是二元。2、弄懂运算符左边的运算对象 是类的对象还是其他类的对象:全局函数实现(一元是一个参数,二元是两个参数)成员函数实现(一元没有参数,二元是一个参数)--推荐其他:只能是全局函数实现。
2023-10-24 20:00:00
795
26
原创 【第三天】C++类和对象进阶指南:从堆区空间操作到友元的深度掌握
new与C语言中mallocdelete和C语言中free作用基本相同区别:new 不用强制类型转换new在申请空间的时候可以 初始化空间内容。
2023-10-23 21:00:00
368
14
原创 【第二天】C++类和对象解析:构造函数、析构函数和拷贝构造函数的完全指南
构造函数是类实例化对象时自动调用拷贝构造函数本质是构造函数旧对象 初始化新对象 时。如果用户不提供拷贝构造 编译器会自动提供一个默认的拷贝构造(完成赋值动作--浅拷贝)
2023-10-22 08:00:00
349
9
原创 【C语言】嵌入式C语言项目管理利器:深入理解Makefile的应用与实践
如果只修改了b.c 使用gcc编译 需要对所有文件重新编译。makefile可避免此问题.makefile变量类似于C语言中的宏,变量名可以数字开头大小写敏感,一般在头部定义。
2023-07-26 21:15:00
1204
60
原创 【C语言】高效处理文件内容:C语言的文件操作技巧与窍门
快读:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);块写:size_t fwrite(void *ptr, size_t size, size_t n, FILE *stream);函数说明:fwrite 函数将ptr 指向的内存里的数据,向stream 所标示的文件中写入数据,一块是size个字节,共n块。读一个字符串:char *fgets(char *s, int size, FILE *stream)
2023-07-24 21:15:00
1034
33
原创 【第一天】C++面向对象程序设计-基础入门(超详细)
C++是对C的扩展,任何有效的c程序都是有效的c++程序,c++程序可以使用已有的c程序库。C++语言在c语言的基础上添加了面向对象编程和泛型编程的支持。c++融合了3种不同的编程方式:c语言代表的过程性语言.c++在c语言基础上添加的类代表的面向对象语言.c++模板支持的泛型编程。我们常常将这两门语言统称为“C/C++”。
2023-07-23 17:41:24
1409
22
原创 【C语言】深入理解C语言数据类型:从结构体到共用体和枚举的全面解析
结构体定义由关键字struct和结构体名组成结构体类型结构体变量struct stuint num;//定义结构体stu//定义结构体变量lucy结构体类型结构体变量struct stuint num;}lucy;//定义结构体stu同时定义结构体变量lucy一次性结构体structint num;}lucy;注:结构体变量可以与成员名相同。访问成员方式:lucy.num(继承类型,int型)lucy.name(char型,数组名代表首元素地址)定义。
2023-07-17 09:15:00
721
38
原创 【C语言】深入解密C语言组包与解包的用法、应用以及const的详细解说
用法:int sprintf(char *str, const char *format,...);例:sscanf("1234 5678", "%*d %s", buf);//num为只读,只能初始化,不能被赋值。*p是只读 不可通过*p 修改p所指向的空间内容。-- 这是 C 字符串,是函数检索数据的源。注:从前往后尽可能多的读取,不匹配时立即退出,*p可读可写 可以通过*p修改p指向的空间内容。注:从前往后尽可能多的读取,不匹配时立即退出。p只读 除了初始化 不能修改p的指向。空格字符、非空格字符。
2023-07-14 21:15:00
1792
25
原创 【C语言】深入精讲字符串处理函数使用与优化
用法:char *strstr(const char *haystack, const char *needle);用法:int strcmp(const char *s1, const char *s2);用法:char *strcpy(char *dest, const char *src);用法:char *strcat(char *dest, const char *src);用法:char *strchr(const char *s, int c);==0 字符串s1 == 字符串s2。
2023-07-12 21:15:00
651
24
原创 【C语言提升】深入了解动态内存管理
1、静态分配在程序编译或运行过程中,按事先规定大小分配内存空间的分配方式。如int a [10]必须事先知道所需空间的大小。分配在栈区或全局变量区,一般以数组的形式。2、动态分配在程序运行过程中,根据需要大小自由分配所需空间。按需分配。分配在堆区,一般使用特定的函数进行分配。
2023-07-09 23:30:00
252
21
原创 【C语言】深入理解C语言指针:从入门到精通,掌握指针的关键技巧和应用
修饰指针变量p(*p),要保存,先定义,后用*p替换。例:1、定义一个指针变量p 其保存int类型的数的地址;int *p;2、定义一个指针变量p 其保存的是数组首地址;int (*p)[N](N为具体数值)3、定义一个指针变量p 其保存的是函数的入口地址;4、定义一个指针变量p 其保存的是结构体变量的地址struct stu lucy;5、定义一个指针变量p 其保存的是指针变量int *q的地址;int **p(指针的指针)在32位平台任何类型的指针变量都是4字节在。
2023-07-08 00:30:00
427
22
原创 【C语言】C语言函数详解:从基础到高级,掌握函数的使用技巧和常见问题解析
1、函数声明(先调用 后定义情况使用,写在调用前)告知编译器 该函数的函数名、形参及返回值类型2、函数定义确定函数名、函数的形参、函数的返回值类型,实现函数体功能3、函数调用执行函数体。函数名+(实参);
2023-06-24 16:24:44
1028
8
原创 【C语言】数组以及键盘获取字符串
1、步骤:1、数组名 和 [] 表示数组2、将数组的个数 放入[]里面3、用元素的类型 定义一个变量4、从上 往下 替换。(1):定义一个数组 有5个元素 每个元素为intint arr[5];(2):定义一个数组 有5个元素 每个元素为int *(3):定义一个数组 有5个元素 每个元素为数组,该数组有10个元素每个元素为int(4):定义一个数组 有5个元素 每个元素为函数的入口地址,该函数有两个int型形参, int返回值类型2、数组名作为类型。
2023-06-21 18:39:24
3653
7
原创 [c语言]详细入门学习进阶教程
/ 行注释/* */ 这是块注释,可包含多行,不能 嵌套(块注释里面再写块注释)mian 主函数,因main是函数调用的入口,故只有一个。其他非main函数可以多个在函数外定义的变量为全局变量,在复合语句中的变量定义的变量为局部变量注:复合语句外的变量不一定是全局变量,因可能有复合语句嵌套。如果局部变量不初始化,内容不确定。
2023-06-18 10:34:29
894
1
原创 【无线传感网】Blink组件的学习
CTP(Collection Tree Protocol)是TinyOS中的一种组件,用于无线传感网络中数据收集和传输,主要用作数据聚集、时间同步、路由和排队等方面。该协议在TinyOS中有多个不同版本的实现,包括原生版本、Adaptive CTP和Collection Tree Protocol Lite等。以下是CTP组件中一些重要的功能介绍:**数据聚集:**CTP允许无线传感节点将数据聚集到父节点或协调节点,从而减少网络流量和能源消耗。
2023-06-16 18:32:57
1297
2
原创 【操作系统】新增Linux系统调用
本次课程设计为Linux中新增一个系统调用,并编写一个程序进行调用,实现计算一个数字的三次方并打印出来的功能。该课设是一项非常实用的课程设计,通过实践来加深了我对Linux系统调用的理解,提高自己的编程能力和实践能力。在实践中,需要注意修改内核源代码时需要谨慎操作,避免出现错误。同时,编写调用程序时需要注意调用系统调用的方法和参数。包括实现的步骤,包括修改内核源代码、编写系统调用代码和调用程序代码等。
2023-06-16 15:10:43
1644
1
原创 Linux全面基本命令介绍及vim的安装和使用
linux以树状 管理目录结构。命令 选项 参数命令:具体的Linux命令选项:扩展命令的功能参数:命令作用的对象。
2023-05-05 20:25:16
421
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人