自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 win10下Qt作为客户端,ubuntu作为服务器端

参考学习代码://连接服务器s.connectToHost(QHostAddress(“192.168.176.128”),9999);发现Qt下连接服务器的端口号是9999这个地方ubuntu中老是监听不到Qt发送的连接信息,尝试了很多次发现是因为ubuntu中一般默认端口是关闭的,参考博客:https://blog.csdn.net/yongjiutongmi53151/article/details/91041055按照博客中所说的先下载防火墙再打开9999端口,终于解决问题这次错误调试大

2020-12-25 00:53:52 1190

转载 QT中的快捷键

https://blog.csdn.net/imxiangzi/article/details/48863855

2020-12-11 19:43:23 167

原创 Ubuntu 18.04中安装QT5.14.2后无法创建新文件

在参考完https://blog.csdn.net/weixin_41477306/article/details/95743555?ops_request_misc上述链接的博客在虚拟机中安装好QT5.14.2后,能打开Qt的应用,但是新建文件时这里的图片是已经能运行之后的,当时到这一步就不能点next了参考了网上的各种方法之后发现我的问题是没有qmake接下来在qt中配置qmake第一步,打开tools第二步,选择options选择Kits->Qt Versions (上图是

2020-12-04 17:37:55 1037

原创 嵌入式面向对象程序开发(15)

2020-06-10 20:24:26 254

原创 嵌入式面向对象程序开发(14)

2020-06-10 16:18:01 210

原创 嵌入式面向对象程序开发(13)

C++未归类知识点在这里插入图片描述C++ lambda表达式格式及说明,捕获列表

2020-05-30 22:35:34 270

原创 嵌入式面向对象程序开发(12)

D5.20模板写一个类模板,实现链表操作;(初始化、插入(头插、尾部插入、中间插入(指定插入的位置))、删除、遍历、获取链表节点、逆序)D5.20手动初始化和使用make_shared函数模板初始化有什么区别?推荐使用make_shared进行初始化;开销小,效率高//shared_ptr提供的成员函数;//use_count():当前有多少个指针指向当前对象或者空间;//unique():判断当前指针是否独享(只有它自己指向该对象)该对象或者空间;//reset():判断当前指针是否独

2020-05-23 22:08:38 182

原创 嵌入式面向对象程序开发(11)

D5.13实现代码功能的复用性:函数重载:函数版本比较多,后期维护很麻烦;导致代码体系过于庞大;宏函数:不安全,不做类型检查,只做傻瓜式替换;不适合实现过于复杂的函数;模板:解决了函数重载版本过多的问题,同时也解决了宏函数不安全及不适应实现复杂函数的问题;return a>b?a:b;//三目运算符:返回的是最终最大的数模板会被编译两次:1、实例化模板之前2、实例化模板之后类模板会实例化两次:1、将类模板实例化成模板类;2、通过模板类实例化对象;成员函数模板:使成员函数不要受类的

2020-05-16 15:49:14 256

原创 嵌入式面向对象程序开发(10)

5.6虚函数:解决向上转型的完整性,可以通过基类的指针调用派生类的方法;虚函数实现前提:函数的覆盖/遮蔽;工程意义:实现了多态(使用同一个实例,调用同一个接口产生不同的效果/使用同一接口,传递不同的实例,执行不同的操作)多态的作用:提高代码的扩展性(新增新的功能时,不修改之前的代码,只增加新的代码)实现多态的前提:1、继承(覆盖/函数遮蔽),2、虚函数,3、用基类的指针指向子对象函数重载也是一种多态;用一个基类对象接受子类对象无法发生多态;只有基类指针接收子类对象的地址或者指针,才会发生多态

2020-05-09 20:00:37 220

原创 嵌入式操作系统网络编程(11)

D4.28

2020-05-06 08:56:54 253

原创 嵌入式面向对象程序开发(9)

D4.24封装:提高代码维护性【遇到问题能够准确定位】继承:提高代码复用性;【不是ctrl+C ctrl+v,不做任何修改或者操作源码就能实现代码的复用】代码复用的方法:组合(has-a)、继承(is-a)多态:提高代码扩展性派生类的实例化对象大小:父类对象大小+派生类的新成员;覆盖:派生类拥有与基类相同的的属性或者方法时,派生类会覆盖;继承方式:public公有继承:【派生...

2020-04-27 20:23:45 150

原创 嵌入式操作系统网络编程(10)

D4.22客户端 socket connect read/write closed服务器 socket setsockopt bind listen acceptclose(fd);任务:实现客户端给服务器发文件!客户端:1、输入发送的文件名;2、将文件名发送给服务器;3、发送文件的内容给服务器;服务器:1、接收到文件名需要创建该文件;2、将接收到的文件内容保存到创建的...

2020-04-27 20:19:01 177

原创 嵌入式面向对象程序开发(8)

D4.17直接用add();//不安全,可以直接观其实现或者调用过程友元,即直接访问成员友元的作用:提高程序运行效率友元是一种允许非类成员函数访问类的非公有成员的一种机制;可以把一个函数指定为类的友元,也可以把整个类指定为另一个类的友元运算符重载的作用:提高程序的可读性;(运算符要比函数名更加有自注释性)什么重载?要相应类型支持相应的运算符;...

2020-04-18 18:22:04 202

原创 嵌入式操作系统网络编程(9)

D4.141、信号的产生:①一个进程向另一进程发送信号;②内核发送信号;③底层硬件发送信号。2、kill 进程号 -s sig选项,例:kill 3973 -s SIGKILL 使3973进程终止。注:(1)进程号查询,例:ps –axf | grep demo (其中,demo是正在执行的可执行文件)。 (2)在while(1)死循环中,ctrl + C 等价于sig选项的SIGINT...

2020-04-18 18:15:10 233

原创 嵌入式面向对象程序开发(7)

D4.10C/C++中static关键字的作用:1、修饰局部变量或对象,延迟该变量或者对象的生命周期;2、修饰全局变量或全局对象,只能在本文件访问不能在其他文件访问;3、修饰类的成员变量时,该变量为静态变量,属于类,被该类的所有实例化的对象共享访问;不占用对象空间;4、修饰普通函数,该函数只能在本文件访问不能在其他文件访问;5、修饰成员函数时,该函数为静态成员函数,属于类,不属于对象,...

2020-04-12 18:09:49 271

原创 嵌入式操作系统网络编程(8)

D4.7//A B C#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/sem.h>#include<sys/ipc.h>intmain(){pid_t pid;key_t key = ftok("/tmp/sem1",...

2020-04-12 17:15:55 180

原创 嵌入式面向对象程序开发(6)

五、深拷贝与浅拷贝1、浅拷贝:对基本类型数据以及简单的对象直接复制内存的拷贝。但是,当类的成员包含指针的时候,使用浅拷贝是将拷贝对象的地址赋值给了新的对象,导致两个指针指向了同一块内存空间,这时候浅拷贝就不能满足实际要求了,需使用深拷贝。示例: Test (const Test &other) { m_id = other.m_...

2020-04-04 14:58:58 152

原创 嵌入式操作系统网络编程(7)

D3.31进程间通信-IPC删除:rm -f /tmp/test一边写,一边读Write:Read:共享内存:共享内存的特点:1、减少进入内核空间的次数2、直接使用地址来读写缓存时,效率会更高,适用于大数据量的通信D4.1队列消息API、作用:当多个进程/线程进行共享操作时,用于资源保护(互斥+同步操作),以防止出现相互干扰的情况,解决方法为加...

2020-04-04 14:51:32 174

原创 嵌入式面向对象程序开发(5)

五、深拷贝与浅拷贝1、浅拷贝:对基本类型数据以及简单的对象直接复制内存的拷贝。但是,当类的成员包含指针的时候,使用浅拷贝是将拷贝对象的地址赋值给了新的对象,导致两个指针指向了同一块内存空间,这时候浅拷贝就不能满足实际要求了,需使用深拷贝。示例:  Test (const Test &other){m_id = other.m_id;m.name = other.m_n...

2020-03-27 21:32:48 193

原创 嵌入式操作系统网络编程(6)

D3.241、多任务 VS 单任务(并发VS并行)2、进程的特点:每个进程拥有独立的虚拟地址空间(内核态:1G 用户态:3G(栈、堆、数据段(bss、or、静态数据区))、代码段)3、进程pid:每个进程创建都有自己的id号 getpid getppid4、进程控制块(PCB):每个进程创建都会有自己进程控制块(struct task_struct)(pid\ppid\fd\parent\...

2020-03-27 21:30:35 134

原创 嵌入式面向对象程序开发(4)

第六课 类型转换一、static_casr(expr)1、作用:相关数据类型之间的转换。(1)类似于C语言的强制转化,保证代码的安全性和正确性。(2)可用于①相关类型转换;例如整型、实型;②子类转父类;③ void*指针与其他类型指针之间的类型转换。(3)不允许指针之间类型的转换(特例:仅允许void*与其他指针之间的类型转换)。如:char ch = ‘a’;char*pc ...

2020-03-22 22:15:15 164

原创 嵌入式操作系统网络编程(5)

D0317嵌入式Linux文件操作1、Linux系统空间的组成:用户空间、内核空间(提供核心的服务和数据)注:用户空间到内核空间是有开销的(时间、cpu、内存)2、系统调用:用户访问内核空间的方式;(注:用户不能直接发起系统调用;系统调用的接口不能跨平台使用)用户编程接口API:发生系统调用—访问内核空间的服务和数据(注:访问内核空间的方式:系统调用、硬件中断、软件中断)3、Linu...

2020-03-22 22:12:42 211

原创 嵌入式操作系统面向对象(3)

D313宏函数调用的时候会把函数的语句嵌入到调用的地方提高运行效率一旦有了默认参数后面必须为默认参数stringC++函数作用查询网站:https://en.cppreference.com/string的字符访问stringstring的特性...

2020-03-14 16:08:51 276 1

原创 嵌入式操作系统网络编程(4)

四、dup、dup2(https://blog.csdn.net/silent123go/article/details/71108501)1、文件描述符在内核中数据结构在具体说dup/dup2之前,我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2),0与进程...

2020-03-14 16:05:08 249

原创 嵌入式操作系统网络编程(3)

D3.10文件I/O的系统调用接口(API)(create、open、close、read、write、lseek)学习API的方法:(系统调用、文件描述符)1、接口定义(函数名、函数形参、函数的返回值、头文件)2、测试demo、测试形参和返回值作用;3、应用案例;文件描述符:特殊的文件描述符:一个程序(进程)会打开3个文件:标准输入0,标准输入1,标准出错2文件的读写会发生...

2020-03-14 16:01:23 261

原创 嵌入式操作系统网络编程(2)

D3.31、  嵌入式网络编程==嵌入式Linux C系统编程(文件、进程、进程间通信、多线程、网络、大并发网络服务器、数据库、shell编程)2、  嵌入式C开发VS嵌入式Linux C:使用Linux操作系统提供的功能(文件…)(多任务、网络聊天室)嵌入式Linux应用软件开发3、  Linux操作系统的组成:用户空间、内核空间4、  为什么将L...

2020-03-04 22:30:17 284

原创 嵌入式操作系统网络编程(1)

D2.25嵌入式网络编程+嵌入式Linux系统一、Linux操作系统安装与使用(命令)二、Linux开发工具(gcc、gdb、make)三、Linux系统编程(文件、进程、线程、网路、数据库)Linux平台:Linux C/C++软件工程师库、中间件开发:Linux C服务器开发、GUI开发:Linux C++/Qt学习前提:会使用Linux操作系统;熟悉使用C四、Linux内核...

2020-03-04 22:27:45 428

原创 嵌入式面向对象程序开发(2)

D2.28C++对C的加强:命名空间:防止变量名、函数名、类名发生命名冲突如何定义命名空间:namespace 空间名{}如何使用命名空间名:命名空间名::变量名或者函数名命名空间可以嵌套使用通过using全局导入命名空间存在命名冲突的风险;std“标准命名空间“头文件C++支持所有C的语法C语言如何解决命名冲突:static关键字(修饰全局变量(:该全局变量只能在本文件访问,不...

2020-03-04 22:26:44 145

原创 嵌入式面向对象程序开发(1)

D2.26嵌入式面向对象编程(嵌入式LinuxC++开发)学习内容:C++(c with class)==95%(C中学过的数据类型、基本控制语句、函数、关键字、位运算、指针、数组)1、 C到C++升级(语法升级)2、 C++面向对象的三大特点(封装、继承、多态)3、 C++模板4、 C++异常处理5、 C++文件处理(I/O操作)6、 C++内存管理(智能指针、内存池)7、 C...

2020-03-04 22:24:15 434

转载 Linux下静态库与动态库的区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-12-02 09:50:46 568

转载 工程管理器make

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。 ...

2019-11-29 14:25:17 122

转载 shell

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-29 14:21:18 510

转载 awk

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-29 14:19:40 150

原创 shell编程 31-35

31、使用脚本循环创建三位数字的文本文件(111-999 的文件)#!/bin/bash使用脚本循环创建三位数字的文本文件(111-999 的文件)for i in {1…9}dofor j in {1…9}dofor k in {1…9}dotouch /tmp/iiij$k.txtdonedonedone32、统计/etc/passwd 中 root 出现的次数#!...

2019-11-29 14:16:28 348

原创 shell 26-30

26、点名器脚本#!/bin/bash编写一个点名器脚本该脚本,需要提前准备一个 user.txt 文件该文件中需要包含所有姓名的信息,一行一个姓名,脚本每次随机显示一个姓名while :do#统计 user 文件中有多少用户line=cat user.txt |wc ‐lnum=[RANDOMsed−n"[RANDOM%line+1]sed -n "[RANDOMsed−n"...

2019-11-24 22:06:12 133

转载 gcc编译器的认识和使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-24 21:58:31 529

转载 vim命令行模式的操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-24 21:56:38 1058

转载 vim配置文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-24 21:54:32 155 1

转载 Linux发行版本的种类和特点

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...

2019-11-24 21:51:02 335

原创 shell编程100例(21-25)

21、备份 MySQL 的 shell 脚本(mysqldump版本)#!/bin/bash备份 MySQL 的 shell 脚本(mysqldump版本)定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签)dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份 mysql 数据库)user=rootpasswd=123456...

2019-11-16 14:15:43 400

空空如也

空空如也

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

TA关注的人

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