自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vsnprintf和_vsnprintf的使用注意点

vsnprintf 函数始终会写入一个 null 终止符,即使它截断输出。使用 _vsnprintf 时, _vsnwprintf缓冲区仅当末尾有空间 ((即要写入的字符数小于 count) 时)才会以 null 结尾。工作中遇到的一个BUG,因为平台不同而使用的两个方法:vsnprintf和_vsnprintf。vsnprintf是c++标准库里面的stdarg.h,在任何平台都可以使用。_vsnprintf是VC6运行环境下的。

2023-03-30 19:52:01 344 1

原创 linux进程管理

进程查看进程管理进程管理的目的:(1)判断服务器的健康状态(2)查看系统中所有进程(3)杀死进程

2022-01-24 12:57:21 770

原创 linux服务

linux服务大致分为两类:rpm包安装的服务(又分为独立的服务和基于xinetd的服务)源码包安装的服务源码包是开源的,自定义性强,通过编译安装更加适合系统,但是安装速度较慢,编译时容易报错。RPM 包是经过编译的软件包,安装更快速,不易报错,但无法看到源代码。源码包安装到我们手工指定的位置当中(一般是/usr/local/目录下),而 RPM 包安装到系统默认位置当中(默认安装在/etc目录下)。RPM 包安装到系统默认位置,可以被服务管理命令识别(如service,chkconfig命令);但

2022-01-23 16:54:17 2545

原创 shell 编程与定时任务

shell 编程基础正则表达式文件截取命令字符处理命令条件判断流程控制if语句case语句for循环while循环until循环linux中,正则表达式用来在文件中匹配符合条件的字符串;通配符用来匹配符合条件的文件名。基础正则表达式文件截取命令grep命令本身也是一个文件提取命令,它是按行搜索的;cut命令是按列提取信息。cut命令默认的分隔符是制表符(Tab),使用选项-d可以指定分隔符。cut命令一般结合grep命令使用。例如有如下student.txt文件:输出男生的学生的姓名:

2022-01-22 23:19:16 709

原创 Shell 学习记录--基础

Shell概述:Shell是命令解释器。连接用户和linux内核,本质就是我们通过各种命令由shell调用内核来实现。Shell主流分为两类:Bourne shell和C shell.Bourne 家族主要包括sh,ksh,Bash,psh,zsh;C家族主要包括csh,tcshlinux使用Bash作为用户的基本Shell。在配置文件/etc/shells可以看到linux支持的shellShell脚本的执行方式echo输出命令echo [选项] [输出内容]选项: -e: 支持反斜线控制的

2022-01-19 23:19:38 884

原创 linux 文件系统及手动分区挂载

分区:linux系统一般可以有3个主分区,1个扩展分区,在扩展分区里可以新增逻辑分区。文件系统:linux默认的文件系统是ext系列的。早期是ext2文件系统,最大支持16TB的分区和最大2TB的文件。ext3文件系统新增了日志功能。ext4支持1EB的分区和16TB文件。文件系统常用命令:df -h :显示所有分区的使用情况。-h是人性化显示du命令:语法:du [选项] [目录或文件名] -s统计总占用量而不列出子目录的大小。fsck:文件系统修复命令dumpe2fs [设备名]:显

2022-01-18 00:16:57 1194

原创 linux yum源

首先,说一下为什么会有yum,yum是个啥?因为linux安装的rpm包 会存在依赖关系,而且很多时候依赖关系比较复杂,还有循环依赖的关系;导致你下载一个东西需要去下载其它的数据包,甚至不知道需要下载的包是啥。(感觉这个是不是和jar包有些类似,jar也是各种依赖)yum就相当于一个软件包安装工具,当你需要安装一个软件时,它会自动把需要下载的依赖包下载过来。十分的方便。yum源 可以理解为就是存放软件包的地方。yum源分为在线的(即从网上下载安装包);本地yum源(因为从网上yum源下载速度比较慢,或

2022-01-17 22:46:48 965

原创 linux 权限管理

chattr修改文件属性权限;选项:-i 对于文件不能修改,删除,只能查看。对于目录不能创建,删除文件,可以修改文件内容。-a 对于文件只能通过echo添加和查看。对于目录相比-i也是可以创建新文件。它的主要作用是防止一些误操作,比如把重要的文件目录设置相关权限,防止误删除。用法:sudo权限:root用户可以通过visudo命令赋予普通用户指定的命令权限。例如:赋给普通用户user1命令:/sbin/shutdown -r nowsu -user1切换成普通用户,可以通过sudo -

2022-01-15 22:46:32 390

原创 linux配置NAT网络模式

打开虚拟网络编辑器在这里可以编辑三种网络连接的配置。三种模式的区别网络上都有介绍,这里就不说了。在这里只详细讲一下Nat模式的配置。如果你觉得不放心(怀疑自己已经把一些ip,网关等信息配置乱了),可以先还原默认设置。或者直接选择更改设置。之后,最重要的是查看NAT设置里 的信息。如下:这里面有网关的地址!首先,安装好vmware后,在网络连接处会出现两张虚拟网卡,分别是VMnet1和VMnet8如图:结合图2也可知,nat模式需要配置vMnet8网卡。首先,可以右键查看以太网4的属

2022-01-12 17:23:13 2731

原创 linux常用命令学习记录

linux命令格式:命令 [-选项] [参数]例:ls -la /etc说明:1.个别命令可以不遵守此格式2.当有多个选项时,可以写在一起3.简化选项与完整选项:-a等价于–alllinux文件类型常见的三种:d(目录)-(文件)l(软连接)目录处理命令:ls命令:-a显示隐藏文件-l详细信息显示 例如:显示的信息分为7部分,分别是:文件的权限信息,引用计数,所属者,所属用户组,文件大小,修改时间,文件名。-d指定显示目录的详细信息 例如:ls -ld /etc-i显示文件i

2022-01-12 09:37:42 379

原创 Linux目录认识

Linux目录认识:/bin/ 存放系统命令的目录,/sbin/ 超级管理员才能操作的命令/usr/bin/ /usr/sbin//boot/ 系统启动目录,保存系统启动相关的文件,如内核文件和启动引导程序(grub)文件等。/dev/ 设备文件保存位置。linux中的所有内容以文件形式保存,包括硬件。这个目录就是用来存放硬件设备文件的。/etc/ 配置文件保存位置/home/ 普通用户的家目录。/lib/ 系统调用的函数库保存位置/lost+found/ /me

2022-01-09 20:32:45 100

原创 c++11 多线程学习记录

#include<iostream>#include<thread>using namespace std;void func1(){ cout<<"func1 thread id "<<this_thread::get_id()<<endl; cout<<"begin func1"<<endl; for(int i=0;i<10;i++){ // this_thread:

2021-12-20 00:30:21 856

原创 c++11 线程池实现

#include<iostream>#include<thread>#include<mutex>#include<condition_variable>#include<future>#include<atomic>#include<functional>#include<vector>#include<queue>using namespace std;#define THRE

2021-12-19 23:51:58 849

原创 Kindling the Darkness: A Practical Low-light Image Enhancer论文学习

该篇论文的链接:https://arxiv.org/abs/1905.04161点燃黑暗:实用的低光图像增强器点燃黑暗:实用的低光图像增强器摘要:在弱光条件下拍摄的图像通常(部分)能见度较差。除了不理想的照明,多种类型的退化,如噪音和颜色失真,由于相机的质量有限,这些退化隐藏在黑暗中。换句话说,仅仅提高黑暗区域的亮度将不可避免地放大隐藏的退化。该项工作构建了一个简单而有效的网络,该网络受 Retinex 理论的启发,将图像分解为两个组件。一个组件负责光调节(照明),而另一个用于去除退化(反射)。值

2021-12-12 15:31:17 654

原创 数据库知识学习

数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。当今互联网中最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。关系型数据库:虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题,但是在数据库独立性和抽象级别上扔有很大欠缺。关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的

2021-11-25 21:05:10 2693

原创 java 异常

1.java的所有错误和异常都继承Throwable类,只有是该类或者子类的对象能够被throw和catch.该类重要的方法:(1)printStackTrace() 将此throwable和其追溯打印到标准错误流。2.java的异常分为运行时异常和编译时异常(受检异常)。运行时异常是所有RuntimeException的子类,运行时异常是需要我们手动修改代码的,是bug。例如数组下标越界是运行时异常:ArrayIndexOutOfBoundsException。非RuntimeExceptio

2021-11-13 23:19:15 609

原创 抽象类,接口,内部类

1.抽象类 (对类抽象,包括属性,行为)(1)含有抽象方法(没有方法体)(必须由abstract关键字修饰)的类必须被声明为抽象类(abstract修饰),抽象类不一定含有抽象方法。(2)抽象类可以含有成员变量,成员常量(final修饰),构造函数,成员方法。(和普通类一样)(3)子类通过extends关键字继承抽象类,必须实现抽象类的抽象方法或者该子类也是一个抽象类。2.接口 :(接口是对行为的抽象)(1)接口里只能含有静态成员常量和抽象方法,它的成员变量默认被关键字(public static

2021-11-10 23:03:41 267

转载 java静态代码块、静态方法、静态变量、构造代码块、普通代码块

一、静态代码块  1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块:public class CodeBlock{static{System.out.println(“静态代码块”);}}  2.执行时机静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,就会按照书写的顺序执行。3.静态代码块的作用:一般情况下,如果有些代码需要在项目启动的时候执行,这时就需要静态代码快,比如一个项目启动

2021-11-09 20:45:00 638

原创 PL/0语言编译器

本实验可以分成两部分:1,PL/0语言的编译器—compiler2.中间代码的解析器----interpreter#include<iostream>#include<cstring>#include<string>#include<vector>#include<stack>#include<fstream>using namespace std;const string KeyWordlist[]={"","CO

2021-10-06 11:23:09 1317

原创 LRU实现

#include<iostream>#include<unordered_map>using namespace std;int n;struct listnode{ int key,value; listnode *pre,*next; listnode(int _key=0,int _value=0,listnode* _pre=nullptr,listnode* _next=nullptr):key(_key),value(_value),pre

2021-09-26 14:01:22 85

原创 SSM整合

SSM框架整合1.1 原始方式整合1.准备工作2.创建Maven工程3.导入Maven坐标<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.o

2021-06-10 22:57:22 119 1

原创 mybatis入门

1.简介2.

2021-06-10 22:22:28 54

原创 Spring JdbcTemplate和事务控制

1. JdbcTemplate的基本使用: @Test public void test1() throws PropertyVetoException { //创建数据源对象 ComboPooledDataSource dataSource = new ComboPooledDataSource(); //加载配置文件 ResourceBundle rb = ResourceBundle.getBundle("jdbc");

2021-05-29 00:03:57 107 1

原创 spring AOP

spring AOP概念:AOP Aspect Oriented Programming面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是spring框架中的一个重点内容,也是函数式编程的一种衍生范型,利用AOP可以对业务逻辑的各个部分进行隔离,从而使的业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。作用:在程序运行期间,在不修改源码的情况下对方法进行增强实际上,AOP的底层是通过spring提供

2021-05-27 23:21:58 53

原创 常用jar包坐标

<dependencies> <!--连接mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.24</version> ...

2021-05-27 20:57:17 350

原创 JAVA-集合

APIMath类,没有构造函数,所有的方法都是静态方法,可以通过类名调用。常用的方法有abs(),max(),min(),ceil(),floor(),random()等。System类,没有构造函数,所有的方法都是静态方法,System.exit(0) 正常退出;System.currentTimeMillis()返回一个时间值。Object类,具有一个无参构造方法,是所有类的祖先。Arrays类,包含用于操作数组的各种方法,toString(int[] a):返回指定数组内容的字符串表示形式。

2021-04-24 14:07:51 66

原创 java-继承,多态

继承this关键字代表本类对象的引用super关键字代表父类对象的引用1.一旦重写了类的构造方法,那么就不会提供默认的无参构造方法了。2.子类中所有的构造方法都会访问父类中的无参的构造方法,因为子类继承父类,在子类初始化之前,一定要先完成父类数据的初始化。所以每个子类构造方法的第一条语句默认都是:super()4.通过子类对象访问一个方法,会先 在子类成员范围找,父类成员范围找,父类的父类。。。5.@Override 是一个注解,可以帮助我们检查重写方法的方法声明的正确性6.父类的私有成员子类

2021-04-20 10:41:07 29

原创 线段树-单点修改,区间查询

#include<iostream>using namespace std;#define MAX 30010int n,m;int tree[4*MAX];void build(int node,int l,int r){ if(l==r){ cin>>tree[node]; return; } int mid=(l+r)/2; build(node*2,l,mid); build(node*2+1,

2021-03-28 22:35:56 59 1

原创 XPath简单学习

XPath概述XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言。最初是用来搜寻 XML 文档的,但同样适用于 HTML 文档的搜索。所以在做爬虫时完全可以使用 XPath 做相应的信息抽取。XPath 的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。另外,它还提供了超过 100 个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有想要定位的节点都可以用 XPath 来选择。    官方文档:https:/

2021-01-30 23:02:00 190

原创 Scrapy爬虫框架的第一个实例(完整详细!)

这个项目我们的主题是爬腾讯视频的电影信息,包括电影名和描述1 创建工程打开一个终端,在想要的位置使用以下命令创建一个新的工程文件夹,名为TXspiderD:\VSCode\scrapy爬虫>scrapy startproject TXspidercd Txspider2 新建一个爬虫新建的时候一定要先给它一个url。D:\VSCode\scrapy爬虫\TXspider>scrapy genspider txsr v.qq.com这里我们需要爬取的完整页面网址是https:/

2021-01-30 22:29:24 2259 2

原创 JavaScript

这里写目录标题JavaScript概述概述JS的组成浏览器内核的作用JS的添加方式基本语法三级目录JavaScript概述概述JavaScript是一种运行于JavaScript解释器/引擎中的解释型脚本语言。解释型:运行之前不需要编译,运行之前不会检查错误,直到运行中碰到错误为止。运行环境有独立安装的JS解释器(node.js)和嵌入在浏览器内核中的JS解释器。JS的组成核心(ECMAScript)文本对象模型(DOM,Document Object Model)让JS有能力与网页对话浏览

2021-01-26 17:43:16 121 3

原创 HTML+CSS学习笔记

HTML概述:HTML文件由标签,元素,属性三部分构成。不区分大小写。标签成对出现,也有单独标签;标签加上其文本内容构成元素;标签内部可有属性。HTML文件结构:头部:浏览器,搜索引擎所需要的信息网页标题栏 单独标签,元数据,网页的基础信息,例如网页的作者,修改日期,最新版本,给搜索引擎的关键字。<h1>标题标签h1~h6<p>段落 每个段落自动换行,段内文字忽略连续空格,不显示空行,也不会换行。<br/>段内换行特殊字符:空格字符: &l

2021-01-26 10:03:39 111

原创 Django使用sqlite3实现留言板

开发要求弱化web设计,有简单的web界面即可重视云端设计,掌握django库的使用数据采用sqlite3数据库的形式来保存开发流程1:新建工程Django留言板D:\VSCode>django-admin.py startproject Django留言板2:新建应用msgapp,并注册应用D:\VSCode\Django留言板>python manage.py startapp msgapp注册应用:修改setting.py(为了让项目知道应用的存在。)3:增加模板

2021-01-22 20:18:00 600

原创 Django使用sqlite3数据库(呕心沥血终于成功了)

首先,Django默认使用的就是sqlite3,而大多数人一上来就是使用MySQL,配置更加复杂,搞了一两个小时也没弄好(我太菜了,,,)对于小的网站项目,使用sqlite3足以。首先,需要安装sqlite3如果使用的是VSCode,可以直接搜索sqlite插件安装即可。或者,到官方下载地址下载。SQLite3的下载地址:http://www.sqlite.org/download.html,我们需要下载的有两个文件:sqlite-dll-win64-x64-3190200.zip和sqlite-to

2021-01-18 18:40:26 18661 9

原创 Django框架进阶

1. Django的URL路由机制settings.py文件中ROOT_URLCONF变量指定全局路由文件名称Django使用urlpatterns变量表示路由,该变量是列表类型,由path()或re_path()作为元素组成path()处理字符串路由,re_path()处理正则表达式路由。Django的URL路由流程:Django查找全局urlpatterns变量(urls.py)按照先后顺序,对URL逐一匹配urlpatterns每个元素找到第一个匹配时停止查找,根据匹配结果执行对应的处理

2021-01-17 22:25:55 167 1

原创 Django加载html页面

云端Web系统的三个通用功能:数据组织,Web展示,控制逻辑。MTV开发模式:M:Models模型——》与数据组织相关的功能,组织和存储数据的方法和模式,与数据模型相关的操作。V:Views视图——》针对请求选取数据的功能T:Templates模板——》与表现相关的所有功能,页面展示的风格和方式,与具体数据分离,用于定义表现风格例子:针对请求返回一个html页面1.创建工程 具体步骤可参考上一次博客的内容2.建立一个新的应用helloapp2其中html的内容如下3 修改views.

2021-01-16 22:18:21 1715 2

原创 Django框架开发流程——第一个hello world程序

Django框架开发流程新建工程>django-admin startproject <工程名>>django-admin [options]具有建立并管理Django工程,建立并管理Django工程使用的数据库,控制调试或日志信息,运行并维护Django工程的功能。可通过>django-admin help查看。工程目录结构:这里hello_django是我创建的工程名;_init_py 一个空文件settings.py 部署和配置整个工程的配置文件(配置

2021-01-16 20:18:02 193

原创 操作系统实验六——死锁问题实验

实验内容:在两个城市南北⽅向之间存在⼀条铁路,多列⽕⻋可以分别从两个城市的⻋站 排队等待进⼊⻋道向对⽅城市⾏驶,该铁路在同⼀时间,只能允许在同⼀⽅向上⾏⻋,如果同时有相向的⽕⻋⾏驶将会撞⻋。请模拟实现两个⽅向⾏⻋,⽽不会出现撞⻋或⻓时间等待的情况。您能构造⼀个管程来解决这个问题吗?dp.h#include <iostream>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#in

2020-12-07 16:37:13 1306

原创 操作系统实验五——进程互斥实验

实验内容:理发店问题:假设理发店的理发室中有 3 个理发椅⼦和 3 个理发师,有⼀个可容纳4 个顾客坐等理发的沙发。此外还有⼀间等候室,可容纳13 位顾客等候进⼊理发室。顾客如果发现理发店中顾客已满(超过20 ⼈),就不进⼊理发店。在理发店内,理发师⼀旦有空就为坐在沙发上等待时间最⻓的顾客理发,同时空出的沙发让在等候室中等待时间最⻓的的顾客就坐。顾客理完发后,可向任何⼀位理发师付款。但理发店只有⼀本现⾦登记册,在任⼀时刻只能记录⼀个顾客的付款。理发师在没有顾客的时候就坐在理发椅⼦上睡眠。理发师的

2020-12-07 16:25:09 2432

原创 操作系统实验四——进程同步实验

实验内容:抽烟者问题。假设⼀个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽 烟。抽烟者卷起并抽掉⼀颗烟需要有三种材料:烟草、纸和胶⽔。⼀个抽烟者有烟草,⼀个有纸,另⼀个有胶⽔。系统中还有两个供应者进程,它们⽆限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉⼀颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这⼀过程重复进⾏。 请⽤IPC 同步机制编程,实现该问题要求的功能。ipc.h#include <stdio.h> #in

2020-12-07 16:15:19 1340

空空如也

空空如也

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

TA关注的人

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