- 博客(36)
- 收藏
- 关注
原创 centos7.9相关开发环境配置整理
下载centos镜像详细查看该博客https://blog.csdn.net/whd1985whd/article/details/84709583官网下载Index of /centos-vault/http://mirrors.neusoft.edu.cn/centos/选择对应的版本号,此处选择的是7.9,选择对应的isos文件夹,x86_64,CentOS-7-x86_64-DVD-2009.iso,Vm创建普通的虚拟机,空间最好能有50g,后期扩容麻烦,...
2022-01-17 17:24:36
2964
原创 C/C++头文件以及避免头文件包含造成的重定义方法
C头文件头文件是扩展名为.h的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用 C 预处理指令#include来引用它。前面我们已经看过stdio.h头文件,它是编译器自带的头文件。引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。A simple practice in C 或 C++ 程序...
2021-11-02 10:46:58
565
转载 vloatile相关详解
1,为什么使用volatile ? C/C++中的 volatile 关键字 和const对应,用来修饰变量,通常用于建立语言级别的memory barrier。这是BS在“ The C++ Programming Language”对volatile修饰词的解释: A volatile specifier is a hint to a compiler that an object may change its value in ways not specified by the la...
2021-09-27 10:22:13
334
原创 main函数之前和之后都做了什么动作
main函数执行之前,主要就是初始化系统相关资源:1.设置栈指针2.初始化static静态和global全局变量,即data段的内容3.将未初始化部分的赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容4.运行全局构造器,估计是C++中构造函数之类的吧5.将main函数的参数,argc,argv等传递给main函数,然后才真正运行main函数main 函数之后会执行相反的工作。...
2021-09-02 19:11:38
468
原创 static和const关键字的作用
static和const关键字的作用编译语言:C++(1)static关键字的作用:函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝在类中的static成员
2021-07-20 17:19:08
431
原创 Linux操作系统原理
一.计算机经历的四个时代1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事可能需要十几个人去共同去完成,年份大概是:1945-1955。而且耗电量特别大,如果那个时候你家里有台计算机的话,可能你一开计算机你家的电灯泡亮度就会变暗,哈哈~2.第二代: 晶体管计算机,批处理(串行模式运行)系统出现。相比第一台省电多了。典型代表是Mainframe。年份大概是:1955-1965。在那个年代:Fortran语言也就诞生啦~一门非常古老的计算机语言。3.第三
2021-07-20 17:16:11
782
原创 MySQL用B+树(而不是B树)做索引的原因
众所周知,MySQL的索引使用了B+树的数据结构。那么为什么不用B树呢?先看一下B树和B+树的区别。1.B树维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作。B-tree算法减少定位记录时所经历的中间过程,从而加快存取速度。普遍运用在数据
2021-07-12 14:56:21
93
原创 窥见C++11智能指针
导语: C++指针的内存管理相信是大部分C++入门程序员的梦魇,受到Boost的启发,C++11标准推出了智能指针,让我们从指针的内存管理中释放出来,几乎消灭所有new和delete。既然智能指针如此强大,今天我们来一窥智能指针的原理以及在多线程操作中需要注意的细节。智能指针的由来在远古时代,C++发明了指针这把双刃剑,既可以让程序员精确地控制堆上每一块内存,也让程序更容易发生crash,大大增加了使用指针的技术门槛。因此,从C++98开始便推出了auto_ptr,对裸指针进行封装,让程序员...
2021-06-25 10:44:20
210
1
原创 cmake使用介绍
CMAKE的使用一、基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、概念out-of-sourcebuild,与in-source build相对,即将编译输出文件...
2019-03-15 09:43:45
171
转载 详解pkg-config --cflags --libs glib-2.0的作用
一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面的不统一。编...
2019-03-12 15:40:53
3748
转载 linux 如何查看硬盘大小,内存大小等系统信息及硬件信息
linux CPU大小[root@idc ~]# cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id” model name: Intel(R) Xeon(TM) CPU 2.80GHz model name: Intel(R) Xeon(TM) CPU 2.80GHz ...
2018-09-18 09:21:53
3270
转载 sqlite3.0使用
swift3.0:sqlite3的使用介绍一、sqlite是纯C语言中底层的数据库,在OC和Swift中都是经常使用的数据库,在开发中,可以使用代码创建数据库,可以使用图形化界面创建数据库。例如SQLiteManager、SQLiteStudio等 二、对常用的一些方法进行解释如下:OpaquePointer: *db,数据库句柄,跟文件句柄FIFL类似,这里是sqlite3指针;sqlite3...
2018-06-13 15:15:14
1332
1
原创 新系统ubuntu虚拟机_SSH连接本地虚拟机失败解决方法
SSH连接本地虚拟机失败解决方法ubuntu16.04,用SSH连接时报错:Connection refused1. 安装openssh-client Ubuntu默认缺省安装了openssh-client,apt-get安装即可 sudo apt-get install openssh-client2. 安装openssh-server 在服务器(Ubuntu虚拟机)上安装SS...
2018-03-21 14:33:31
335
原创 ubuntu16.04NDK的安装与配置
官方地址:https://developer.android.com/ndk/downloads/index.html#downloadDNK下载2、解压,将Android NDK压缩包解压到你想要的目录下,如/opt/android/ndk/ndk$ chmod a+x android-ndk-r10e-linux-x86_64.binndk$ ./android-ndk-r10c-linux...
2018-03-19 11:21:54
4360
转载 Linux下安装python的pycurl模块
下载curl:http://curl.haxx.se/download/curl-7.21.3.tar.gz解压:tar xzf curl-7.21.3.tar.gz进入解压文件,进行编译安装:./configuremakemake install下载pycurl:http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz解压:tar x...
2018-03-15 18:40:22
1485
转载 Install curl utility on solaris
April 19th, 2011Firstly, download curl package from sunfreeware.com. unzip the tarball, and execute ./configure# ./configurechecking whether to enable maintainer-specific portions of Makefiles... noch...
2018-03-15 09:24:37
2275
转载 解决ubuntu16.04新系统vi不能用问题
方案一安装vim:ubuntu预装的是vim tiny版本,而需要的是vim full版本。执行下面的语句安装vim full版本:$sudo apt-get remove vim-common$sudo apt-get install vim这样就行了,vim是一款优秀的软件,可以在运用中体会到。方案二(没网的话推荐这个方案):在vi命令行使用命令“:set nocompatible”,就是设置...
2018-03-14 21:26:02
2400
原创 std :: string :: find_first_not_of
公共成员函数std :: string :: find_first_not_ofC ++ 98C ++ 11字符串(1)size_t find_first_not_of(const string&str,size_t pos = 0)const;c-string(2)size_t find_first_not_of(const char * s,size_t pos = 0)const;缓冲区
2018-01-18 10:49:35
404
转载 string c++详解 find_first_not_of() find_first_of()
这两个方法都是查找与()中指定的字符串中任意一个字符都不相符的字符的位置地址,而不是返回的是与()中制定的字符串完全匹配的字符串的首地址 find_first_not_of()语法: size_type find_first_not_of( const basic_string &str, size_type index = 0 ); size_type find_first_not_of(
2018-01-18 10:47:36
944
转载 【C++11】新特性——auto的使用
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。[cpp] view pla
2018-01-18 10:43:47
203
转载 c++ stringstream(老好用了)
v前言: 以前没有接触过stringstream这个类的时候,常用的字符串和数字转换函数就是sscanf和sprintf函数。开始的时候就觉得这两个函数应经很叼了,但是毕竟是属于c的。c++中引入了流的概念,通过流来实现字符串和数字的转换方便多了。在这里,总结之前的,并介绍新学的。v常见格式串: %% 印出百分比符号,不转换。 %c 整数转成对应的 ASCII 字元。 %d 整数转
2018-01-18 10:25:59
103279
6
转载 Linux下DIR,dirent,stat等结构体详解
copy from 点击打开链接最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream { void *__fd; char *__data;
2018-01-17 17:26:16
163
转载 C++ regex 正则表达式的使用
在c++中,有三种正则可以选择使用,C ++regex,C regex,boost regex ,如果在windows下开发c++,默认不支持后面两种正则,如果想快速应用,显然C++ regex 比较方便使用。文章将讨论C++ regex 正则表达式的使用。C++ regex函数有3个:regex_match、 regex_search 、regex_replaceregex_match
2018-01-17 17:19:54
1842
转载 ifstream 的使用方法介绍 一
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中
2018-01-17 16:47:32
54932
转载 C++智能指针 unique_ptr
C++智能指针 unique_ptrunique_ptr 独占所指向的对象, 同一时刻只能有一个 unique_ptr 指向给定对象(通过禁止拷贝语义, 只有移动语义来实现), 定义于 memory (非memory.h)中, 命名空间为 std.标准库早期版本中定义了 auto_ptr, 它具有 unique_ptr 的部分特征, 但不是全部, 例如, 不能在容器中保存 auto_p
2018-01-17 16:45:09
252
转载 DNS协议详解及报文格式分析
Posted on 2017-06-18 by Jocent — No Comments ↓目录一. DNS协议理论知识1.1. 域名结构1.2. 域名服务器1.3. 域名解析过程二. DNS协议报文格式2.1 头部2.2 正文三. Wireshark分析DNS协议3.1 请求报文3.2 响应报文
2018-01-10 16:19:43
382
转载 scons说明文档
目录:第一章:编译和安装SCons第二章:简单编译第三章:编译相关的一些事情第四章:编译和链接库文件第五章:节点对象第六章:依赖性第七章:环境第八章:自动将命令行选项赋值给Construction变量1、安装Python因为SCons是用Python编写的,所以你必须在使用SCons之前安装好Python。你在安装Python之前,应该注意查看Pytho
2018-01-08 13:54:12
1129
转载 OS.ENVIRON()详解
我们想要用python获得一些有关系统的各种信息的时候就不得不想到os的environ,那这里面都具体包含了那些内容呢?一、简介对于官方的解释,environ是一个字符串所对应环境的映像对象。这是什么意思呢?举个例子来说,environ['HOME']就代表了当前这个用户的主目录。下图是windows和ubuntu下的environ的key列表:wind
2018-01-08 11:40:15
10395
1
原创 Linux下常用的搜索文件
在当前目录下查找一个,或者多个文件1,find ./ -name "y*"查找某目录下边的所有含有字符串的文件grep -rn 'startClient' .上边两个一个查找文件,一个查找字符串基本就够用了,在比较高级点的就是如下使用locate搜索linux系统中的文件,它比find命令快。因为它查询的是数据库(/var/lib/locatedb),数据库包含
2018-01-08 11:32:58
293
转载 scons使用
一、概述 scons是一个Python写的自动化构建工具,和GNU make相比优点明显: 1、 移植性:python能运行的地方,就能运行scons 2、 扩展性:理论上scons只是提供了python的类,scons使用者可以在这个类的基础上做所有python能做的事情。比如想把一个已经使用了Makefile大型工程切换到scons,就可以保留原来的Makef
2018-01-08 11:06:45
362
转载 Linux下" >/dev/null 2>&1 "相关知识说明
在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者google一下相关的知识。 0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr)command >/dev/null 2>&1 & == c
2018-01-08 11:05:40
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人