自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单元测试之打桩-stub

单元测试之打桩

2024-08-01 21:23:20 246

原创 Google Test的使用

/测试代码其中TestCase为测试用例的名称,用于将相关的测试用例分组在一起,以便于在测试结果中更好识别和分类。TestName为具体测试的名称,一般描述测试的目的。return a+b;

2024-07-29 20:55:10 470

原创 Linux命令记录

这篇文章是记录我平常用到的一些linux操作命令,为了以后自己忘记了回来温习方便。1、xrandr功能:显示当前界面的分辨率Xrandr -s 2020*12532、set nu 设置显示行号Set noun 设置不显示行号修改.vimrc这个文件可以永久显示行号。3、dw是删除一个字母4、mv /ttt/yyy/*.c /hhh/jjj 将路径目录/tt/yyy/下所有.c的文件全部移到/hhh/jjj下5、-L 表示添加路径-l表示添加动态库6、which

2021-08-24 16:09:23 269

原创 双极性三极管

1、三极管简介  晶体三极管具有三个电极,又称为所以又称为半导体三极管,简称三极管或晶体管。三极管又分为单极型和双极型两种类型。双极型三极管是由三层杂质半导体构成的器件,由于这类三极管内部的电子载流子和空穴载流子同时参与导电,所以故称为双极型三极管。三极管具有放大和开关的作用,是组成放大电路和电子电路的核心器件。2、双极性三极管的基本结构、符号、类型。   双极性三极管由两个PN结构成,按照PN结的组合方式,有PNP型和NPN型,它们的结构示意图和电路符号,如下图。  如上图,无论是PNP型

2021-06-26 21:16:46 4412

原创 二极管与PN结

半导体与二极管1.1半导体二极管的结构与符号  半导体二极管也称为晶体管,简称二极管。它由一个PN结加上电极引线封装而成,二极管的文字符号为D或VD。如下图,P区引出的电极为正极,N区引出的负极。  根据PN结面积的大小,二极管可分为点接触型、面接触型、硅平面型。其中硅平面型结面积小,结电容小,允许通过的电流也比较小,适用于高频、小电流场合,如检波电路、脉冲电路及计算机中的开关元件。面接触型,结面积大,结电容大,允许通过的电流也比较大,适合低频、大电流场合,如整型电路。  我们都知道二极管具有加正

2021-06-24 13:35:31 7462

原创 JAVA小项目--商品管理系统

项目概述:这个项目可以实现用户对商品信息的录入、查询、修改、删除功能学习目的:主要是对java的基础知识的应用、ArrayList的使用和类的封装调用第一步:创建一个Product 类里面的成员有商品编号,商品名称,商品价格,以及实现商品编号,商品名称,商品价格的设置方法和获取方法public class Product { private String No;//商品编号 private String name;//商品名称 private Double price;/

2021-04-22 22:41:01 5122 1

原创 JAVA小项目--实现斗地主

实现思路:第一步准备牌、第二步洗牌、第三步发牌、第四步看牌。程序实现和相关细节如下:package com.company;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;/*斗地主案例 */public class Main { //程序的主入口 public static void main(String[] args) { //1、准备

2021-04-07 19:01:27 127

原创 Linux-C静态库与动态库的生成和使用

一.静态库和动态库的简述当我们想把代码提供给别人用,又不想被别人看自己的代码时,我们就可以建立自己的程序函数库。程序函数库是一些已经编译好的代码和数据,我们人是很难看懂的。在Linux中程序函数库分为:静态函数库以.a后缀结尾、动态函数库(共享函数库).以.os结尾。静态库的特点:①在程序执行前加载进去的②相对于加载动态库,程序执行比较快。③不同程序执行,使用相同函数库时,每次都会加载一份静动态库进内存,会造成资源浪费。动态库的特点:①在程序执行时加载进去的②不同程序执行,使用相同函数库时

2021-02-28 23:00:06 222

原创 树莓派登录方式(一)USB转串口登录

1、修改系统配置,解除蓝牙对串口的占用把SD卡插到电脑上,打开文件打开cmdline.txt文本,把里面的内容替换成下面的内容dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait打开config.txt,在文本末尾添加这一个,解除蓝牙对串口的占用dtoverlay=pi3-di

2021-02-27 19:13:25 538

原创 如何在乌班图下载、安装树莓派的交叉编译工具

1.到我的云盘下载交叉编译工具tools-master链接:https://pan.baidu.com/s/16s8r4cWqgzx_KNSPn6uJdg提取码:90t6复制这段内容后打开百度网盘手机App,操作更方便哦2在虚拟机与windows之间建立一个共享文件夹(自行网上百度)将tools-master复制到当前工作目录cp /mnt/hgfs/LWshare/tools-master.zip .3.解压tools-master.zipunzip tools-master.zip4.

2021-02-23 00:00:02 235

原创 树莓派外设使用---继电器

这次我们使用用树莓派的7引脚作为继电器的控制引脚,继电器是低电平导通,高电平断开。因为要用到树莓派I/O控制库(wiringPi.h)所以在编译工程文件的时候要手动链接。例如:gcc demo2.c -lwiringPi食物连接图:接线图树莓派 继电器引脚7---------------IN3.3V----------------VCC0--------------------GND代码示例:#include<wiringPi.h>#inclu

2021-02-21 11:44:56 462

原创 多线程编程之线程

什么是线程?线程是程序执行的最小单位。一个进程在某一时刻只能做一件事情,但加入线程之后,进程在某一时刻可以做多件事情了。每个线程都有独立的任务。在linux上开发线程的API主要有:1、创建线程:int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn) (void *), void *restrict arg);函数的返回值:若成功返回0,

2021-02-01 23:05:21 112

原创 共享存储

共享存储共享存储允许两个或者多个进程共享一个给定的存储空间。因为数据不需要再客户进程和服务器进程之间复制,所以这一种最快的进程间通信。但要注意的是当服务器进程往共享存储区写数据时,客户端进程不应读这些数据。例子:模拟服务器端#include <sys/ipc.h>#include <sys/shm.h>#include<stdio.h>#include<stdlib.h>#include<string.h>int main()

2021-01-28 15:09:14 1056

原创 进程间通信之消息队列

消息队列:消息队列是消息的链接表,存储在内核中,由消息队列标识符标识。我们把消息队列为队列,其标识符简称ID.消息队列的特点:1.消息队列是面向记录的,其内容有特定的格式和特定的优先级。2.消息队列独立于发送和接受。进程终止时,消息队列及内容并不会被删除。3.消息队列可以实现消息的随机查询。消息的查询可以不按先进先出读取,也可以按消息的类型读取。打开或者创建队列的函数原型:int msgget(key_t key, int msgflg);函数成功执行时,成功返回队列标识符,失败返回-1k

2021-01-27 16:48:36 131

原创 进程间通信之管道

什么是进程间通信及如何实现它:进程间的通信(IPS)是指不同进程之间进行信息传播或交换。实现进程间通信有管道、消息队列、信号量、共享内存、套接字(socket)、streams等,其中套接字(socket)、streams支持不同主机进程间的通信。管道分为无名管道和命名管道。1.无名管道:特点:1.管道是半双工,数据只能往一个方向流动。2.管道就像水管,数据就像水,数据读走就没有了。3.它只能用于具有亲缘关系的进程间通信(父进程与子进程)。4.它可以被看作特殊的文件,对它的读写可以用普通的r

2021-01-26 17:53:04 189

原创 exec族之execl函数的使用

exec的功能:在进程内部执行一可执行的文件,可以是二进制文件,也可以是shell脚本。excel函数的作用:函数原型:int execl(const char * path,const char * arg,…)path:要执行的程序路径。可以是绝对路径或者是相对路径。arg:程序的第0个参数,即程序名自身。相当于argv[O]。返回值:excel函数调用成功,无返回值。调用失败,返回-1.例程: 1 #include <sys/types.h> 2 #include &

2021-01-21 17:28:19 516

原创 编程模拟孤儿进程

孤儿进程:当父进程不等待子进程退出,在子进程退出前就结束了生命,此时子进程就变成了孤儿进程。在linux系统中为了避免孤儿进程,init(pid=1)专门收留孤儿进程,变成孤儿进程的父进程。代码实现如下:1 #include <sys/types.h> 2 #include <unistd.h> 3 #include<stdio.h> 4 #include<stdlib.h> 5 /*孤儿进程*/ 6 int main() 7 {

2021-01-21 00:27:02 199

原创 wait()函数抓僵尸进程

父进程等待子进程退出僵尸进程:如果子进程退出,而父进程没有进行收集,那么子进程就会变成僵尸进程列如 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include<stdio.h> 4 #include<stdlib.h> 5 6 int main() 7 { 8 pid_t pid; 9 int i=0; 10 int stast=10;

2021-01-21 00:12:21 235

原创 vfork()函数的使用

vfork()函数的使用前言:vfork()函数与fork()函数创建进程的区别:区别一:vfork()创建的子进程直接使用父进程的存储空间,不进行拷贝。、区别而:vfork()创建的子进程,是子进程先运行,当子进程调用exit(0)退出,父进程才执行。代码如下: 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include<stdio.h> 4 #include<stdlib.h&

2021-01-20 17:50:58 564

原创 fork()函数,模拟服务器等待客户端连接创建子进程

fork()函数,模拟服务器等待客户端连接创建子进程前言:一个父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的一父 进程等待客户端的服务请求。当这种请求到达时,父进程调用fork, 使子进程处理此请求。父进程则继续等待下一个服务请求到达。下面我们就编程实现。代码如下: 1 #include <sys/types.h> 2 #include <unistd.h> 3 #include<stdio.h> 4 5 in

2021-01-20 16:44:56 183

原创 使用fork()函数创建进程

使用fork()函数创建进程前言:如果程序调用fork()成功,fork()函数会返回两次的值,两次的值都不相同,返回0是给子进程的,父进程返回非负整数。调用不成功返回-1(具体怎样会调用不成功,我现在也不知道,以后学到了再来补充).下面是代码实现:#include <sys/types.h>#include <unistd.h>#include<stdio.h>int main(){ pid_t pid;//定义pid 获取进程号 pi

2021-01-20 15:35:25 759

原创 c程序的存储空间是如何分配的?

c程序的存储空间是如何分配的?后续补充-------

2021-01-19 23:32:39 145

原创 通过getpid()函数,获取进程标识符pid

通过getpid()函数,获取进程标识符pid每一个进程都有一个非负整数唯一的ID,叫做进程标识符PID.下面我们就用linux内核提供的函数 getpid()函数编程实现获取进程的pid首先通过man命令查看手册查看getpid()函数的使用。CLC@Embed_Learn:~$ man getpidNAME getpid, getppid - get process identificationSYNOPSIS #include <sys/types.h

2021-01-19 16:45:06 3700

原创 如何查看系统有哪些进程?( ps,top指令)

2.如何查看系统有哪些进程?指令:psHELLO@Embed_Learn:~$ ps PID TTY TIME CMD 3881 pts/2 00:00:00 bash 4120 pts/2 00:00:00 ps但这只能查看部分的进程信息,可以通过ps -aux 查看全部进程信息。HELLO@Embed_Learn:~$ ps -auxWarning: bad ps syntax, perhaps a bogus '-'? See http://proc

2021-01-19 16:22:02 325

原创 c语言标准库fopen(),read(),fwrite()的编程应用

c语言标准库fopen,fread,fwrite的编程应用#include<stdio.h>#include<string.h>int main(){ FILE *fd; char *str="aaaaa"; char buff[128]={0}; fd=fopen("./file4.txt","w+"); fwrite(str,sizeof(char),strlen(str),fd); fseek(fd,0,SEEK_SET); f

2021-01-18 17:39:46 367

原创 编程实现定位字符串修改文件内容

编程实现定位字符串修改文件内容编程思路:新建一个文件,在里面编辑内容。建立一个.c的文本,在里面进行编程:打开文件,把文本的内容提取出来,通过strstr函定位到要修改的字符串,然后替换它。代码实现:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdlib.h>#include<stdio.h>#include<string.h&

2021-01-18 15:58:42 147

原创 在linux中用编程实现cp指令

在linux中用编程实现cp指令思路:建立一个源文件,并且输入内容。然后建立建立一个demo.c文件,之后在demo.c里面编程:打开文件,将里面的内容读取出来内存,用一个指针指向内存,打开或新建副本,将内容写入副本,关闭源文件,关闭副本。编程实现代码如下:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<stdlib.h>void main(int a

2021-01-18 12:07:16 199 2

原创 静态文件和动态文件

静态文件和动态文件1.文件存放在块设备(磁盘)的文件系统中的文件中,我们称之为静态文件。文件存放在内存中,我们称之为动态文件。2.当程序open一个文件时linux内核会做以下操作:首先内核会建立一个打开文件的数据结构(包含文件描述符,节点信息等),记录我们打开的文件。然后会向内存申请一段内存,并且将静态文件里面的内容从块设备读取到内核中特定地址管理存放。3 当打开文件后,对文件进行读写操作,都是在内存中这一份动态文件进行操作,而不是针对静态文件。此时修改动态文件的内容,并不会影响静态文件里面的内容,

2021-01-17 16:42:01 3061 1

原创 文件描述符

文件描述符对于内核而言,所有打开的文件都由文件描述符引用。文件描述符是文件的一个索引,在形式上表现为非负整数。当我们open或creat一个文件时,内核会向进程返回一个值,这个值就是文件描述符,它作为文件的标识,可以将它作为参数传递给write或者read等函数,将而对文件进行操作。(1)文件描述符的作用域仅在当前进程(2)open 函数打开文件,成功会返回一个文件描述符(非负整数),打开失败,返回-1;按照惯例,uinx shell使用文件描述符0与进程标准输入相结合,使用文件描述符1与进程标准输

2021-01-17 15:59:09 383 1

原创 基于wemos d1实现blinker控制蜂鸣器

基于wemos d1实现blinker控制蜂鸣器工作原理:做这个小项目能够,用bliker这个app(感觉比之前的TCP连接好用),帮我们打开蜂鸣器。所需要的元器件:usb线,wemos d1 ,蜂鸣器手机要准备的材料:点灯科技app(blinker).电脑所需要的材料:arduino编辑软件,串口调试助手。接线方法(蜂鸣器和wemos d1):VCC–3.3V,GND–GND,I/O–D5当你在点灯科技app上,添加新的设备后,点击app的主页左上角的那三条杠,点击设备管理获取秘钥将秘钥

2021-01-12 22:09:47 721 1

原创 vmware:ping: unknown host baidu.com(PPPOE)

****如果你的乌班图能ping通电脑的ip,但是ping不通百度的ip和域名,** 而且试了很多办法也不行。那你就要看看这里了。**好了话不多说。找出原因和解决办法。看一下你的网卡。如果你的也是PPPOE那么,你跟我一样的问题。解决办法:一、把网线拔了直接连wifi。二、选择路由器接入。...

2021-01-04 20:35:59 175

原创 基于wemos di制作手机app智能宿舍开门系统

在学校期间,很多学生出门都忘记带钥匙,。同样,我跟我舍友也是,出门很经常不带钥匙,每次都要去宿管哪里拿,很麻烦。所以我就在淘宝买了一些模块,用手机就能开门了。几十元就搞掂,绝对经济实惠。 工作原理:wemos d1作为服务器,wemos d1要和手机在同一个网络内(手机和开发板连同一个wifi),在arduino软件编辑、烧录代码后,通过串口调试助手,获取wemos d1的ip地址,打开手机app(名称:tcp连接),输入ip地址,端口号(8888,代码有),连接服务器后,在消息哪里发送数字1,舵机..

2021-01-02 13:36:13 517

原创 使用Arduino报错:error: Failed to open COM3 error: espcomm_open failed

今天在使用arduino写程序的时候,在烧录的时候出现 Failed to open COM3 error: espcomm_open failed这个问题。、出现上面的情况可能有以下三种情况:1、没有安装驱动2、Arduino软件里面的工具–》端口,没有选。3、串口没有关闭如果你也出现这样的问题,可以试一下这些办法。...

2020-12-26 17:19:18 10077 2

原创 c语言实战项目:学生信息管理系统

一、题目:根据要求编写一个学生管理系统1、能够录入学生的姓名、年龄、性别、电话号码2、能够实现删除功能3、能够以输入姓名的方式查找学生4、能够修改学生信息5、能够打印学生信息二、功能实现及其源代码如下:#include<stdio.h>#include<stdlib.h>#include<String.h>#define _CRT_SECURE_NO_WARNINGSstruct student{char name[20];int age;

2020-07-15 11:54:33 1519

原创 LCD1602液晶显示案例

一、实验要求:编写一个c程序,用AT89C51控制LCD1602,使其分两行显示名字和学号:“liyunlong”和“2018105381224”二、实验功能和程序#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char#define out P0sbit RW=P2^5;sbit RS=P2^6;sbit E=P2^7;void de

2020-07-10 23:08:08 2815 2

原创 如何在Linux下编程

此实验在centos镜像下进行一、确保安装gcc编辑器二、新建一个.c文本三、用vi编写一个c程序四、对刚刚编辑好的程序进行编译

2020-07-09 20:28:33 366

原创 C51单片机实验:单一中断应用

**一、实验要求:在AT89C51单片机的P2端口接有8只LED,在外部中断0输入引脚P3.2接有一只按键开关K1。当按下K1触发外部中断,P2口高四位,低四位交替点亮。二、功能要求及参考程序#include<reg52.h>#define uchar unsigned char/延时函数/void daley(uchar xms){uchar i,j;for(i=xms;i<0;i–)for(j=0;j<114;j++);}/主函数/void main

2020-07-09 15:39:52 3259

原创 C51单片机实验系列:循环左移点亮流水灯_crol_

一、实验内容:流水点亮P2端口外8个LED灯,编程使其以500ms的频率亮灭。用Proteus画出89C52控制P2端口外8个LED灯的原理图,并下载程序仿真。二、功能要求及参考程序#include<reg52.h>//编写c51程序所需要的头文件#include<intrins.h>//包含循环左移函数_crol_的头文件#define uint unsigned int//宏定义用uint代替unsigned int#define led P2//宏定义用led代

2020-07-09 12:24:21 10848

原创 用python对远程服务器文件进行压缩

前段时间,学校有一个运维的实训,老师布置了一个作业。用python对centos下的/home/qzm/.bash_history文件进行压缩,我就在网上搜了一下,发现有些我不会用,我之前也没有学过python,要下学期才开。所以自己花了一下时间才完成了这个作业。我现在也分享给大家,希望对大家有帮助。代码如下:压缩文件夹import osimport zipfiledef zipDir(dirpath, outFullName):zip = zipfile.ZipFile(outFullName

2020-06-18 11:22:30 662

原创 用python将当前目录下,.txt文件录入到excel中

有时候我们在办公可能会遇到这样的情况,就是要将某文件目录下的某类文件汇总在一起。那么呢,我就举一个例子,就是将文件所在的这个目录的.txt文件的文件名全部录入到excel中,大家可以根据实际情况修改。下面是代码演示。...

2020-06-18 11:00:36 364

空空如也

空空如也

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

TA关注的人

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