自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类型推导

,,,

2020-06-01 00:00:28 401 1

原创 函数模板

函数模板是通用的函数描述,它们使用泛型来定义函数,其中的泛型可用具体的类型替换。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。由于模板允许以泛型(而不是具体类型)的方式编写程序,因此有时候也被称为通用编程。在标准C++98添加关键字typename之前,C++使用关键字class来创建模板。例如:在C++11中,可以将class替换为typename。模板的显示具体化假设有一个结构体,C++允许将一个结构体赋给另一个结构体,如果只想交换其中部分成员,则需要不同的代码。可以提供一个具体化

2020-05-24 21:40:41 163

转载 c++mu模板

C++模板:描述C++提供一种模板的机制来减少代码重复。比如:对于同一样函数使用不同的数据类型,int,double,char等。C++模板属于“元编程”的范畴。C++ 模板函数1.支持不同数据类型的函数重载:#include using namespace std;int square (int x){return x * x;};float square (float x){return x * x;};double square (double x){return x

2020-05-16 16:51:59 255

转载 c++中向上转型和向下转型,动态转换,和静态转换

子类转换为父类:向上转型,使用dynamic_cast<type_id>(expression),这种转换相对来说比较安全不会有数据的丢失;父类转换为子类:向下转型,可以使用强制转换,这种转换时不安全的,会导致数据的丢失,原因是父类的指针或者引用的内存中可能不包含子类的成员的内存。动态转换和静态转换,dynamic_cast<type_id>(expression),static_cast<type_id>(expression),表示的是将expression转换为

2020-05-09 20:00:40 1196

原创 继承

继承:是面向对象程序设计中使代码可以复用的重要手段,它允许程序员在原有类特性的基础上进行扩展增加功能。这样产生的新的类叫派生类。继承体现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。格式class DerivedClassName : access_label BaseClassName派生类名字 : 继承权限 父类名字继承关系public(is -a)可以把子类对象看...

2020-04-27 20:17:17 88

原创 sem线程信号量

sem线程信号量线程信号量使用步骤:(1)定义信号量集合(如:sem_t sem[3]);注:线程信号量集合其实就是一个数组,数组每个元素就是一个信号量。(2)初始化集合中的每个信号量;(3)p、v操作;(4)进程结束时,删除线程信号量集合。1、sem_init初始化信号量1、头文件:#include <semaphore.h>2、函数原型:int sem_init(...

2020-04-15 08:26:34 323

原创 mutex线程互斥锁

mutex线程互斥锁1、pthread_mutex_init初始化互斥锁1、头文件:#include<pthread.h>2、函数原型:int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);3、函数形参: mutex:互斥锁地址(需自定...

2020-04-15 08:25:59 211

原创 pthread_cancel/exit(线程退出)

pthread_cancel/exit(线程退出)1、头文件:#include<pthread.h>2、函数原型:被动退出:int pthread_cancel(pthread_t thread);主动退出:void pthread_exit(void *retval); //或使用return直接返回注:pthread_exit类似于exit函数,不过exit是终止整个...

2020-04-15 08:25:14 1883

原创 pthread_join(线程等待)

pthread_join(线程等待)1、头文件:#include<pthread.h>2、函数原型:int pthread_join(pthread_t thread, void **retval);3、函数形参: thread:指定要回收的次线程的TID;retval:次线程函数返回的返回值。4、函数返回值:成功返回0,失败返回错误号。5、功能:阻塞等待TID为threa...

2020-04-15 08:24:44 851

原创 pthread_create(线程创建)

pthread_create(线程创建)1、头文件:#include<pthread.h>2、函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);3、函数形参:thread:存放线程的TID(由pthre...

2020-04-15 08:23:56 485

原创 sig(信号)

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

2020-04-15 08:23:01 1347

原创 成员函数、属性

成员函数、属性1、对私有属性添加set/get方法2、类内初始化3、static关键字1、static修饰类的成员(1)每一个对象都可调用同一个类的成员,实现共享,但一定要在类外初始化。(2)类的成员定义:也称为静态成员,属于类,不属于某个具体的对象。(3)类的成员访问形式:①对象名.类成员名;②类名::类成员名。注:第②种不需要先实例对象再访问,即下方示例第一条语句。(4)使用...

2020-04-13 15:47:18 506

原创 sem(信号量API)

sem(信号量API)1、作用:当多个进程/线程进行共享操作时,用于资源保护(互斥+同步操作),以防止出现相互干扰的情况,解决方法为加锁。注:互斥:该进程在操作时其他进程不能操作,不关心操作的顺序问题;同步:多个共享操作时,进程必须要有统一操作的步调,按照一定的顺序来操作。2、信号量的使用步骤:(1)进程调用semget函数创建新的信号量集合,或者获取已有的信号量集合;(2)调用sem...

2020-04-02 08:59:53 616

原创 msg(消息队列API)

msg(消息队列API)1、消息队列的特点:(1)传送有格式的消息流;(2)多进程网状交叉通信时,消息队列是上上之选;(3)能实现大规模数据的通信。1、msgget(创建/获取消息队列)1、头文件:#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h>2、函数原型:int m...

2020-04-02 08:59:10 1440

原创 shm(共享内存API)

shm(共享内存API)1、共享内存的特点:(1)减少进入内核空间的次数;(2)直接使用地址来读写缓存时,效率会更高,适用于大数据量的通信。2、共享内存的使用步骤:(1)进程调用shmget函数,创建新的或获取已有共享内存;(2)进程调用shmat函数,将物理内存映射到自己的进程空间;(3)进程调用shmdt函数,取消共享内存的映射;(4)进程调用shmctl函数,释放开辟的那片物...

2020-04-02 08:58:14 1566

原创 exec函数簇(创建进程)

exec函数簇(创建进程)1、 头文件:#include <unistd.h>2、 函数原型:int execl(const char *path, const char *arg,(char *) NULL);int execv(const char *path, char *const argv[]);注:一般execv + fork 配合使用。3、 函数形参:path...

2020-04-02 08:57:24 665

原创 stat与fstat(获取文件信息)

stat与fstat(获取文件信息)1、头文件:#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>2、函数原型:int stat(const char *pathname, struct stat *statbuf);int fstat(int fd, struct stat *st...

2020-04-02 08:56:22 325

原创 mmap(存储映射)

mmap(存储映射)1、头文件:#include <sys/mman.h>2、函数原型:void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);3、函数形参:addr:指定文件应被映射到的进程空间的起始地址;length:共享内存映射的有效文件大小(字节数),须<=文...

2020-04-02 08:55:24 368

原创 进程间通信方式概述

进程间通信方式概述进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其他数据库中的某些表...

2020-03-31 08:17:33 105

原创 深拷贝与浅拷贝与移动构造函数

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

2020-03-29 13:45:39 643

转载 如何实现守护进程

文章划分为四个部分守护进程的概念。认识实现守护进程的相关函数。创建一个守护进程的基本步骤。演示实现守护进程代码。一、守护进程的概念守护进程就是一个脱离于控制终端、进程组与会话并且在后台运行的进程。进程组:每个进程除了有一进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合,每一个进程有一个唯一的进程组ID。进程组ID类似于进程ID——它是一个正整数,并可存放再pid_t数...

2020-03-25 09:12:00 568

原创 C++的封装

C++的封装一、封装1、封装作用:对外提供接口,屏蔽数据,对内开放数据。2、C语言的封装:当单一变量无法完成描述需求的时候,封装成函数或结构体类型解决。问题:即知其接口,又可以直接访问其内部数据。注:C语言中的封装内容不能是函数(C++中的class可实现),结果可以是函数。3、C++的封装:class封装的本质,在于将数据和行为绑定在一起,再通过对象来完成操作。二、类与对象1、类...

2020-03-23 14:58:05 548

原创 string类

string类一、string类的字符操作1、string定义:可变长的字符串2、string字符串初始化,示例:(1) string s = “hello world”;(2) sting s1(“hello world2”);(3) string *ps = new string(“hello world3”);(4) string s4 = “”; //空字符串3、strin...

2020-03-20 09:15:50 71

原创 多任务、进程、线程

1、什么叫做多任务?IT系统,同时完成多项任务处理,这个同时指的是同一段时间内,而不是同一瞬时。多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux、windows就是支持多任务的操作系统,比起单任务系统它的功能增强了许多。当多任务操作系统使用某种任务调度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一件任务提供服务。因为任务调...

2020-03-17 09:20:12 133

转载 string的用法

C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触 perl, php, 和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。举例来说,如果...

2020-03-15 16:57:12 176

原创 Linux fcntl

功能描述:根据文件描述词来操作文件的特性。文件控制函数 fcntl – file control头文件:#include <unistd.h>#include <fcntl.h>函数原型:int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int...

2020-03-15 16:45:40 124

原创 fcntl、mmap(存储映射)

一、 fcntl1、头文件:#include <unistd.h>#include <fcntl.h>2、函数原型:intfcntl(intfd, intcmd);intfcntl(intfd, intcmd, long arg);intfcntl(intfd, intcmd, struct flock *lock);3、函数内形参:fd:文件描述词;cmd:操作...

2020-03-11 08:30:14 148

原创 const 在C和C++中的区别

const 在C和C++中的区别C++中的const正常情况下是看成编译期的常量,编译器并不为const分配空间,只是在编译的时候将期值保存在名字表中,并在适当的时候折合在代码中. 所以在C++中const修饰的量可以用在数组的定义中。而在C中,const是一个不能被改变的普通变量,既然是变量,就要占用存储空间,所以编译器不知道编译时的值.而且,数组定义时的下标必须为常量.在C语言中: co...

2020-03-10 08:15:15 63

原创 嵌入式网络编程+嵌入式Linux系统

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

2020-03-06 08:16:00 71

原创 嵌入式网络编程+嵌入式Linux系统

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

2020-03-04 08:21:13 285

转载 vscode编译C++的三种方法

本文链接:https://blog.csdn.net/Jeffxu_lib/article/details/86632400收起VScode编译C++主要有如下几种种方法。————————————————版权声明:本文为CSDN博主「Xu小亿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Jef...

2020-03-02 16:29:18 1089

原创 嵌入式网络编程+嵌入式Linux系统

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

2020-02-28 08:27:24 86

转载 linux总结

转载

2019-12-01 11:15:42 58

转载 linux复习知识点

转载

2019-12-01 11:14:56 70

转载 linux复习填空

转载

2019-12-01 11:13:26 90

原创 shell编程100例(六)

100、使用awk编写的wc程序#!/bin/bash使用awk编写的wc程序自定义变量 chars 变量存储字符个数,自定义变量 words 变量存储单词个数awk 内置变量 NR 存储行数length()为 awk 内置函数,用来统计每行的字符数量,因为每行都会有一个隐藏的$,所以每次统计后都+1wc 程序会把文件结尾符$也统计在内,可以使用 cat ‐A 文件名,查看该隐藏字符...

2019-11-24 21:53:05 215

转载 find高级用法

命令概述find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。exec解释:-exec 参数后面跟的是comm...

2019-11-24 21:46:49 643

转载 find命令

命令概述find 查找目录和文件Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都...

2019-11-24 21:45:19 192

转载 which命令

命令概述查找环境变量中的文件which 命令用于查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找命令时需要遍历的目录。which 指令会在环境变量 $PATH 设置的目录里查找符合条件的文件。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。命令格式which [选项] 执行文件名 […]常用选项查找环境变...

2019-11-24 21:43:59 81

原创 shell编程100例(五)

21、使用 expect 工具自动交互密码远程其他主机安装 httpd 软件#!/bin/bash使用 expect 工具自动交互密码远程其他主机安装 httpd 软件删除~/.ssh/known_hosts 后,ssh 远程任何主机都会询问是否确认要连接该主机rm ‐rf ~/.ssh/known_hostsexpect <<EOFspawn ssh 192.168....

2019-11-16 14:25:08 239

空空如也

空空如也

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

TA关注的人

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