自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CentOS上安装mysql7.5配置

安装包和教程比较多,这里就不多说了,主要说一下博主安装完成之后mysql密码的问题,mysql7.5不再默认没有密码,有一个暂时的初始登录密码。1、开启mysqlsystemctl start mysqld;2、获取mysql的初始密码grep 'temporary password' /var/log/mysqld.log可以获得第一初始密码,复制3、mysql -p输...

2019-04-16 22:52:04 526

转载 史上最详细的linux网卡ifcfg-eth0配置详解

原博文地址通过查资料与工作中的进行一下总结:DEVICE="eth1"网卡名称NM_CONTROLLED="yes"network mamager的参数,是否可以由NNetwork Manager托管HWADDR=...

2019-04-11 16:28:13 4675

转载 关于ssh-keygen命令的介绍与用法

原博文地址ssh-keygen 用于:生成、管理和转换认证密钥常用参数-t type:指定要生成的密钥类型,有rsa1(SSH1),dsa(SSH2),ecdsa(SSH2),rsa(SSH2)等类型,较为常用的是rsa类型-C comment:提供一个新的注释-b bits:指定要生成的密钥长度 (单位:bit),对于RSA类型的密钥,最小长度768bits,默认长度为2...

2019-04-10 23:58:42 4081

转载 GitHub 新手详细教程

原博文地址首先,我先对GitHub来一个简单的介绍,GitHub有一个很强大的功能就是,你在服务器上边可以创建一个库(稍后会介绍怎么创建),写代码是一件很重的任务,尤其是很多人完成一个很大的项目的时候,就十分的复杂,一群人一起来写某个项目,大家完成的时间,完成的进度都是不相同的,你写一点我写一点,甚至可能你今天写的出现了错误,影响到了我昨天写的代码,最后怎么才能将大家的代码轻松的汇总起来,又怎...

2019-04-10 23:38:44 282

转载 网页版Github简单操作

转载文章 原博文地址之前写过github桌面版软件的使用教程,感觉那种软件是大佬级用的东西,听说是网页版的Git被墙了,虽然我安装了桌面版但是使用一段时间之后,我很少使用桌面版几乎没有,我一直都是直接通过网页版上传文件。对于小白来说网页版还是更适合。这里我简单介绍一个网页版的基本使用方法,如果大家使用网页版的话,我建议英语不好的人使用谷歌浏览器,谷歌浏览器的好处就在于可以一键翻译当前网页成中文...

2019-04-10 23:34:43 521

原创 Linux 上搭建python、pip、setuptools、jupyter、openssl详细步骤和常见问题

参考博文:https://www.cnblogs.com/smileyes/p/7288487.html                 https://blog.csdn.net/feng973/article/details/78835453            https://www.linuxidc.com/Linux/2017-02/140234.htmhttp://blog.chin...

2018-07-09 01:37:07 852

转载 Linux上怎样安装gcc

在Linux系统里如何安装GCC编译器(C编译器)以及相关的工具呢?1、安装输入下面的命令安装基本开发工具包:[root@masterc]# yum groupinstall "Development Tools" 2、查看用命令来验证是否安装成功:[root@masterc]# whereis gccgcc: /usr/bin/gcc/usr/lib/gcc /usr/libexec/gcc /...

2018-07-07 17:37:18 11134

转载 xshell登陆腾讯云服务器

腾讯云主机支持SSH登陆,本文将介绍windows下使用xshell登陆腾讯云主机。首先获取腾讯云主机的SSH秘钥,在云主机管理界面中,点击右上角的创建秘钥,填写SSH的名称,点击确定即可。创建完秘钥后需要在十分钟之内下载,腾讯云网站不会保存SSH的秘钥。下载完秘钥之后点击刚创建的SSH密钥,复制其中的公钥,然后放在同一个文件夹中,公钥的名称和密钥一样,密钥没有文件名后缀,公钥的后缀为.pub创建...

2018-07-02 15:51:22 7636 3

转载 XShell上传、下载本地文件到linux服务器

1.连接设置(linux客户端)注:1.正确填写用户身份认证信息(用户名和密码);     2.在ZMODEM 添加上图设置2.linux服务器端设置在linux主机上,安装上传下载工具包rz及sz; 如果不知道你要安装包的具体名称,可以使用yum provides */name 进行查找系统自带软件包的信息;[html] view plain copy[root@localhost src]# ...

2018-06-11 15:42:29 2494

原创 一个hello程序的运行过程

    首先我们来看一下我们计算机大概的硬件结构,图中可能会屏蔽大量的实现细节,或者很多寄存器没有给出来,我们这里主要是为了总体的建立一个大概模型和印象,所以就只抓了主干,省去了一些细节,下面我们上图    我们可以看到我们的计算机底层硬件主要分为了cpu、主存、I/O以及磁盘。    假设我们现在硬盘上有一个hello的可执行文件,那它的运行要在这些硬件上经历一些什么呢?            ...

2018-04-30 21:23:16 930

原创 内存对齐和sizeof关键字

关于内存对齐的文章很多,大家上网搜一下会发现很多的文章讲的很细,我在这里就不多提,我主要提出一些我总结的一些关于这种体型的几个细节和做题依据。1、我们内存对齐总是选择min(编译器默认的对齐字节,结构体中所占字节最大的数据类型)按照这个字节数对齐     注意:我们的32位编译器默认是4字节,64位默认是8字节2、我们结构体中每个数据的起始地址必须是本个数据类型的整数倍大小,例如int 类型数据的...

2018-04-29 23:26:32 295

转载 vs2012怎样生成自己的静态库

转载自:https://blog.csdn.net/wwkaven/article/details/39316945 1、打开VS,新建一个Win32项目,勾选“静态库”选项:2、添加一个简单的计算类MyMath:3、向类中添加变量及函数,详情如下:MyMath.h[cpp] view plain copy print?#pragma once  class CMyMath  {  public:...

2018-04-22 22:56:20 859

原创 WinHTTP功能函数

参考博客:https://blog.csdn.net/thanklife/article/details/70909661WinHTTP提供以下功能:WinHttpAddRequestHeaders 向HTTP请求句柄添加一个或多个HTTP请求标头。 WinHttpCheckPlatform 确定WinHTTP是否支持当前平台。 WinHttpCloseHandle 关闭单个HINTERNET句柄...

2018-04-19 23:14:39 2088

原创 各种排序的使用场景总结

一、各种排序的时空复杂度二、使用场景1、当输入规模n比较小的时候,应该使用选择排序或者时插入排序(插入排序通常会比选择排序少一些比较的次数,但是选择排序会比插入排序少挪动的次数);2、当输入的数据基本有序的时候,应该使用插入排序或者是随机的快速排序。3、当n较大,要求速度较快的时候可以使用nlgn的算法比如:堆排序、快速排序和归并排序。堆排序的空间复杂度为lO(1)、而快速排序的空间复杂度是O(l...

2018-04-08 15:38:49 6887 3

原创 静态成员和方法的继承问题

一、子类有同名static函数#include <iostream>using namespace std;class base{public:static void show() {cout<<"static base show()::a"<<a<<endl;}static int a ;};int base::a = 10;clas...

2018-03-31 15:10:13 2522

原创 剖析next_permutation的实现

我们今天可以讨论一下全排列的问题,因为我们STL库中实现了这个next_permutation,我们结合库里的这个函数说一下我们全排列的递归和非递归的实现。一、递归实现       我们通过递归解决一个问题的时候,往往要看问题是不是都是同样性质和解法的问题,并且问题的规模是不是在一步步减小,直到问题规模为常量,也就是有一个结束的条件。            对于我们的这个全排列问题,大家应该都知道...

2018-03-28 21:56:42 1273

原创 数组名和指针的区别

    我们平常学习的时候用一个指针指向数组名,然后指针就可以和数组也一样通过下标访问了,以至于我们似乎觉得指针和数组没有什么差别。例:                    int a[10] = {0};                     int * p = a;                     p[3] = 6;   //ok 没有问题 不会报错但是我们再看一个例子:在A文件中...

2018-03-22 13:43:36 1729

原创 TCP的拥塞控制

一、拥塞控制原理 1、概念      在计算机网络中的链路容量(即带宽)、交换节点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会要变坏。这种情况叫做拥塞。2、原理     拥塞控制和流量控制密切相关,所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提

2017-12-05 22:52:34 653

原创 TCP——滑动窗口协议

TCP的滑动窗口协议是;以字节为单位的。现假设A收到B发来的确认报文段,其中窗口是20,而确认号是31,这个信息表明,接收方希望接受的数据是31号数据,所以也就代表我们31号之前的数据都已经正确接收了,我们也不必在发送缓存中为它们保留了,窗口可以向前滑动,我们根据这些确认报文里的信息可以构造我们的滑动窗口。 我们发送窗口里的数据都是可以发送出去的,但是发送窗口里没有收到确认的数据还必须保留

2017-12-03 22:48:21 966

原创 TCP——停等ARQ&连续ARQ

一、停止等待协议概念:“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。1、无差错情可以看到在a中是正确的传输。2、出现差错 而在b中的时候,因为M1有错,所以B直接丢弃掉了,然后发送方因为一直没有接收到确认,所以它等待一定的时间后,它就会认为发送超时了,进行超时重传。我们可以看到当A收到B对于M1的确认后,才继续发送M2。3

2017-12-03 11:49:02 2295

原创 TCP编程

一、TCP编程流程服务器:1、Socket  函数原型:      int socket(int domain, int type , int protocol);      domain参数告诉系统应该使用哪个底层协议族。 Type:用于指定新套接字的通信属性,它有两个选项,一个是SOCK_STREAM,它表示有序、可靠、面向连接的双向字节流。对AF_INET域,通常

2017-12-03 11:14:59 399

原创 TCP首部信息

一、TCP的连接TCP的连接端点叫做套接字或插口。根据TFC793的定义:端口号拼接到IP地址的端点构成了套接字。因此,套接字的表示方法是在点分十进制的IP地址之后写上端口号,中间用冒号或逗号隔开。例如,若IP地址是192.2.4.5而端口号是80,那么得到的套接字就是(192.3.4.5:80)。总之,我们有套接字socket={IP地址:端口号}每一条TCP连接唯一地被通信两端的两

2017-12-03 10:29:46 2181

原创 new、delete和malloc、free

参考链接:http://blog.jobbole.com/109483/     在c的时候,我们学习了当事先不确定要开辟多大内存的时候我们可以选择用malloc函数进行动态的内存开辟。现在学习c++呢,我们也有类似的操作,只是呢用法上会有一些出入,我们先来看一下使用上的区别。一、使用1、malloc和free#include  函数原型:(void*) malloc(size

2017-12-02 16:46:43 215

原创 c中动态开辟内存的几个函数

1、malloc和free#include  函数原型:(void*) malloc(size_t n);  int *=(int*)malloc(sizeof(int)*10);   这个函数使用上较为简单,有兴趣的同学可以类比依稀它还有另外的两个版本,回顾一下我们c语言的知识,我们在这里就不回顾了。对于这个函数我们的理解上要注意以下几点:       1)我们mal

2017-12-02 16:45:44 678

原创 孤儿进程和僵尸进程

参考:https://baike.baidu.com/item/waitpid/4071590一、孤儿进程1、概念:父进程已经结束,子进程却没有结束。2、危害:父进程用fork创建新的子进程之后,两者是独立的。父进程负责回收子进程的退出状态信息和分配的资源。如果父进程先结束,则子进程没有父进程进行资源的回收,这样会造成资源的浪费,而且子进程会遗留PCB等待父进程的处理,这样也造成了内存

2017-12-02 16:44:18 208

原创 模拟实现shell

参考网址: http://blog.chinaunix.net/uid-8996150-id-2011653.html      大家每天都在用shell,每天都用它执行命令,有没有想过shell是怎么实现的呢?今天我们就来模拟实现以下myshell。     我们可以先回忆一下我们用shell的时候分为了几个过程:     1、输出提示符,显示[用户名@主机名 当前所在目录名]$(#

2017-12-02 16:43:29 593

原创 网络基础知识

一、基本概念1、计算机网络:自主计算机的互联集合   自主:指功能上独立、地理位置上分散的计算机集合   互联:分为物理互联和逻辑互联功能:计算机网络能够完成的功能就是数据通信和资源共享2、互连网和互联网   1)互连网(internet)是一个通用名词,它泛指有多个计算机网络互连而成的计算机网络。在这些网络之间的通信协议(即通信规则)可以任意选择,不一定非要使用TCP/I

2017-12-02 16:33:02 355

原创 剑指offer习题3——二维数组的排序和查找

题目:在一个二维数组中,每一行都按照从左到右递增顺序排序,每一列都赞找从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。                                         eg:                                                   1  2  8   9

2017-11-28 20:30:45 346 1

原创 fork之写时拷贝技术

现在大家对fork的主要功能应该很清楚了,我们上一篇也讨论到了,fork函数之后子进程的堆区、栈区和全局数据都是不共享,那我们是不是认为其实父进程每次fork产生一个子进程时,子进程都拷贝了一个父进程的内存空间呢?这个问题就是我们这篇博客要解决的问题。       fork之后经常会和一个exec函数一起使用,exec的详细介绍我们下一篇博客将会写出,我们现在暂时可以了解它就是替换当前程序映像

2017-11-25 21:25:18 400

原创 fork的数据是否共享

我们都知道fork的功能了,它可以创建一个新的进程,调用fork的进程,我们称为父进程,而新产生的进程,我们称为子进程。调用一次fork,有两个返回值,在父进程中返回子进程的PID,而在子进程中返回为0,调用失败,返回-1。我们知道fork之后子进程拷贝了父进程的PID,拷贝了父进程的代码内容,那我们都只子进程拷贝之后是从fork之后的下一条语句执行,因为计数器设置为了fork函数之后的下一条指令

2017-11-25 21:23:13 934

转载 查看进程打开的文件和文件被哪些进程打开

转自linux公社博客       有许多情况下,我们需要查看一个进程当前打开了哪些文件,反过来我们也希望知道某一个文件正在被哪些进程所读写。在Linux下有许多有用的工具可以帮我们完成这两个工作,下面介绍这两个工具:lsof与fuser。    fuser find files or sockets' user    格式:fuser [选项] fname    -k 如果找到打

2017-11-25 21:21:14 5043

转载 什么是shell

参考链接:http://www.linuxprobe.com/what-happened-click.htmlhttp://blog.csdn.net/jek123456/article/details/52593251 计算机硬件是由运算器、控制器、存储器、输入输出设备等设备组成的,而能够让机箱内各种设备各司其职的叫做系统内核。系统内核负责驱动硬件、管理活动和分配/管理硬件资源,它对

2017-11-25 21:19:47 183

转载 gcc和g++的区别

本文参考:GMPY_Tiger的CSDN博客——Linux 下 gcc 与 g++的差别网易博客者“静心”的博客——《gcc与g++的区别》一般而言,在Linux下编译程序分为以下4个阶段:预处理:编译处理宏定义等宏命令(eg:#define)——生成后缀为“.i”的文件    编译:将预处理后的文件转换成汇编语言——生成后缀为“.s”的文件    汇编:由汇编生成的文件翻译为

2017-11-25 21:18:11 178

原创 浅析extern“C”

extern ”C“的意思是将代码按照C语言的方式编译,是c++中才有的。之所以c++中有这么个东西呢,也是为了解决两种源文件中互相调用的问题。大家应该都知道,c和c++的符号命名规则是不一样的,所以,如果我们在一个c或c++中调用另外一个不同于调用文件类型的,就会有问题。 大家都知道函数名是会生成符号的,我们引用的外部函数肯定也是一个全局类型,我们才能够引用,在编译的时候,我们引用的外部符号都会

2017-11-25 21:14:42 233

原创 const的巧用

一、const 修饰一级指针1、int   a=10;     const int *p=&a;2、int a=10;     int *const p=&a;                                                3、const int a=10;      int *p=&a;      //不行,因为可以通过*p

2017-11-25 21:13:55 312

原创 c和c++区别(一)——默认值、inline、cosnt和引用

一、带有默认值的函数1、c的版本   c:c89(我们现在使用的版本,不支持默认值)、c99(可以支持默认值)、c11(2011年发行的版本)2、c++版本      c++:c89          c++99(我们现在使用的版本,支持默认值)   c++11  3、代码示例1)int sum(int a, int b);     int sum(int a,

2017-11-25 21:12:40 345

原创 delete加不加[]的区别

delete是我们c++中的关键字,我们都知道它和new是配套使用的,有new就有delete不然会存在内存泄漏的问题。但是我们使用过delete的同学可能会发现delete有两种形式,一种是delete [],那这两个有什么区别呢?              1、delete 释放new分配的单个对象指针指向的内存         2、delete[] 释放new分配的对象数组指针指

2017-11-25 21:10:46 3752 1

原创 线程知识总结

一、线程的概念线程是进程内部分一条执行序列,进程至少有一个线程。可以通过线程库创建线程,我们将main函数执行虚了称之为主线程,新生成的线程称之为函数线程。二、线程与进程的区别 1、进程是资源分配的最小单位,线程是处理器调度的最小单位。 2、父子进程只共享文件描述符,线程之间共享全局数据、堆区数据和文件描述符 。 3、创建线程所需要的资源比创建进程小。线程切

2017-11-25 15:39:36 183

转载 操作系统怎样“回应”shell命令行

参考链接:http://www.linuxprobe.com/what-happened-click.html1、检查命令的路径比如我们写一个“ls”命令给系统,系统如何知道我们写的这个命令是什么意思呢?首先,第一步骤阶段是判断用户是否以绝对路径方式输入命令。如果是绝对路径(如/bin/ls)的话则直接执行。如果不是的话,系统就直接进入下一步的判断。2、别名命令?

2017-11-17 14:19:53 392

原创 fork遗留习题详解

我们先来解决一下第二题,它和我们上篇的第一题区别是什么呢? 我们会发现原来的每次输出后面都会有一个‘\n’,这一题的输出是都没有'\n'。我们要解决这道题首先要清楚‘\n’的作用是什么。提到这个,我们就连着和'\n'差不多功能的知识点一起复习一下。设计操作系统的人非常聪明,它并不是产生一个字符就调用I/O输出,因为如果这样的话,那cpu大量的时间都在完成I/O中断处理了,这样的效率

2017-11-17 14:18:58 390

空空如也

空空如也

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

TA关注的人

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