- 博客(156)
- 收藏
- 关注
转载 Linux 内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市...
2018-10-11 21:17:06
310
原创 C++ String类编写
1. h文件#ifndef _STR_H_#define _STR_H_#include <iostream>using namespace std;class String{public: String(); //默认构造函数 String(const char*s); //普通构...
2018-09-01 17:10:51
756
1
转载 c++中异常处理中:logic_error、runtime_error
本文转载自:https://blog.youkuaiyun.com/hongqiang200/article/details/57955338C++语言本身或标准程序库所抛出的所有异常,都派生自基类exception。这是其他数个标准异常类别的基类,它们共同构成一个类体系:这些标准异常类别分为三组:(1)语言本身所支持的异常此类异常用以支撑某些语言特性。主要包括:bad_alloc:ne...
2018-08-31 15:26:10
5163
转载 Python爬虫原理
本文转载自:https://www.cnblogs.com/sss4/p/7809821.html前言简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML、JS、CSS代码返回给浏览器,这些代码经过浏览器解析、渲染,将丰富多彩的网页呈现我们眼前; 一、爬虫是什么?如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一...
2018-08-02 16:30:02
322
原创 Python爬虫之三种网页抓取方法性能比较
本文转载自:https://blog.youkuaiyun.com/oscer2016/article/details/70209144下面我们将介绍三种抓取网页数据的方法,首先是正则表达式,然后是流行的 BeautifulSoup 模块,最后是强大的 lxml 模块。1. 正则表达式 如果你对正则表达式还不熟悉,或是需要一些提示时,可以查阅Regular Expression HOWTO ...
2018-08-02 16:21:16
535
原创 python内存管理
1.引用计数机制引用计数通过记录对象被引用的次数来管理对象。对对象的引用都会使得引用计数加1,移除对对象的引用,引用计数则会减1,当引用计数减为0时,对象所占的内存就会被释放掉。引用计数可以高效的管理对象的分配和释放,但是有一个缺点,就是无法释放引用循环的对象。引用次数增加的情况:1.对象被创建:x=42.另外的别人被创建:y=x3.被作为参数传递给函数:foo(x)4.作为容器对象的一个元素:a...
2018-07-10 12:51:14
773
原创 python常见面试题
1. 到底什么是Python?你可以在回答中与其他技术进行对比(也鼓励这样做)。下面是一些关键点:Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。Python是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。你可以直接编写类似x=111和x="I'm a string"这样的代码,程序不...
2018-07-09 14:19:01
632
转载 fidder抓取https详解
本文转自至:https://www.cnblogs.com/joshua317/p/8670923.html本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享!声明:本文为原创文章,转载请注明来源:https://www.cnblogs.com/joshua317/p/8670923.html很多使用f...
2018-07-09 09:04:31
1041
转载 python 正则表达式
本文转自至: 什么是正则表达式正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑。正则并不是python独有的,其他语言也都有正则python中的正则,封装了re模块python正则的详细讲解常用的匹配模式\w 匹配字母数字及下划线\W 匹配f非字母数字下划线\s ...
2018-07-05 12:51:18
256
转载 python 字符串格式化
本文转自至:https://www.cnblogs.com/xxby/p/5571620.html字符串格式化Python的字符串格式化有两种方式:%格式符方式,format方式%格式符%[(name)][flags][width].[precision]typecode(name) 可选,用于选择指定的keyflags 可选,可供选择的值有:+ 右对齐;正...
2018-07-05 11:23:41
270
转载 Python爬虫利器 Beautiful Soup的用法
本文转载自:https://cuiqingcai.com/1319.html1. Beautiful Soup的简介简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多...
2018-07-05 10:40:14
3699
1
转载 python读写csv文件
本文转载自:https://www.cnblogs.com/unnameable/p/7366437.htmlhttps://www.cnblogs.com/zle1992/p/5986317.htmlcsv文件的读取: 前期工作:在定义的py文件里边创建一个excel文件,并另存为csv文件,放入三行数据,我这里是姓名+年龄(可以自己随意写)首先我们要在python环境里导入csv板块(测试小白...
2018-07-05 10:05:20
1641
原创 求一个数组的子集
递归法:参考博文:https://www.cnblogs.com/microgrape/archive/2011/05/11/2043814.html#include "stdafx.h"#include <iostream>#include <vector>using namespace std;void all_subset(int s[], int n, vector...
2018-06-30 13:42:49
745
转载 统计在从1到n的正整数中1出现的次数
本文转载至:https://blog.youkuaiyun.com/sjf0115/article/details/8600599问题:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N= 2,写下1,2。这样只出现了1个“1”。N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。问题一:写一个...
2018-06-30 00:56:28
5167
原创 Tkinter实例学习
前段时间做一个东西刚好接触到python的Tkinter,上网看了一些基本教程,这里做一个总结,并参考网上的一个实例1.规划图2.源码# -*- coding:utf-8 -*-from tkinter import *from tkinter.filedialog import *class Application: num_info_hash = {} char_inf...
2018-06-25 11:35:26
1794
原创 TCP总结及常见面试题
1. TCP 协议是一个面向连接,可靠的,字节流服务的协议面向连接是指通信双方交换数据之前必须建立连接,可靠性是指拥有多种确保可靠性的机制,8位字节流为最小单位构成的字节流。这里主要先阐述下TCP是一种流模式的协议的含义:举个形象的例子:TCP流模式:你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。往水池...
2018-06-22 17:01:27
1703
转载 IP协议及IP数据包详解
本文转自至:https://blog.youkuaiyun.com/super_yc/article/details/72290931回忆一下网络层的主要功能:通过TCP或者UDP协议绘制网络地图,数据包选取合适的路径进行传输(网络层基本单位 : 数据包 Package)(1)编址(目标端的IP地址),数据传输的过程当中就必须表明要发送目标端的IP地址;(2)路由选择:选择一条最快的路径进行数据包的传输;(3...
2018-06-21 10:23:08
3209
原创 STL 容器(一)
1.容器类的是容纳、包含一组元素或元素集合的对象2.容器的基本功能和分类顺序容器array(数组)、vector(向量)、deque(双端队列)、forward_list(单链表)、list(列表)(有序)关联容器set(集合)、multiset(多重集合)、map(映射)、multimap(多重映射)无序关联容器unordered_set (无序集合)、unordered_multiset(无序...
2018-06-13 14:42:16
308
原创 C++STL迭代器
STL 的基本组件——迭代器(iterator) 迭代器是泛化的指针,提供了顺序访问容器中每个元素的方法 可以使用“++”运算符来获得指向下一个元素的迭代器; 可以使用“*”运算符访问一个迭代器所指向的元素,如果元素类型是类或结构体, 还可以使用“->”运算符直接访问该元素的一个成员; 有些迭代器还支持通过“--”运算符获得指向上一个元素的迭代器; 迭代器...
2018-06-13 14:18:51
301
原创 多重继承二义性
先以一个例子来引入多重继承出现的问题:#include <iostream>using namespace std;class Person{ public : void sleep(){cout<<"this is a sleep function"<<endl;} void eat(){cout<<"this is a eat func...
2018-06-10 02:05:20
580
原创 C++面试题 构造函数调用虚函数
在构造函数中,虚拟机制不会发生作用。因为基类的构造函数在派生类构造函数之前执行,当基类构造函数运行时,派生类的数据成员还没有初始化。如果基类构造期间调用的虚函数向下匹配到派生类,派生类的函数理所当然会涉及到本地数据成员,但是那些数据成员还没有初始化,而调用涉及一个对象还没有初始化的部分自然是危险的,因此虚函数不会向下匹配到派生类,而是直接执行基类的函数。下面通过一个例子来证实:#inc...
2018-06-10 01:16:35
621
转载 C++虚函数实现机制
本文转自至:https://blog.youkuaiyun.com/jiangnanyouzi/article/details/3720807其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public: virtua...
2018-06-10 01:03:44
432
原创 C++初始化和赋值的区别
1.C++中, 对于简单类型的赋值和初始化的区别基本可以忽略2.当涉及到类或者复杂的数据类型时,问题就变得不那么简单了,下面以一个例子来引入话题:#include <iostream>using namespace std;class Point { public: Point(int a=0, int b=0):x(a), y(b){}; ~Point(){ ...
2018-06-09 01:58:53
10472
1
转载 GitHub 新手详细教程
本文转自至:https://blog.youkuaiyun.com/Hanani_Jia/article/details/77950594https://github.com/ 这是GitHub的官方网站,在官网上可以注册属于自己的GitHub账号,网上是全英文的,对于英语不好的同学建议使用谷歌浏览器,谷歌浏览器可以翻译网页变为中文使用起来十分方便。 通过简单的步骤之后你就会有一个属于自己的GitHub账号。...
2018-06-08 14:08:36
9381
6
原创 LINUX进程信号量
首先了解一下,信号量机概念是由荷兰科学家Dijkstr引入,值得一提的是,它提出的Dijksrtr算法解决了最短路径问题。 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况,信号量是一个特殊的变量,并且只有两个操作可以改变其值:等待(wait)与信号(signal...
2018-05-30 15:51:26
830
原创 共享内存
共享内存区域是被多个进程共享的一部分物理内存多个进程都可把该共享内存映射到自己的虚拟内存空间,所有用户空间的进程若要操作共享内存,都要将其映射到自己虚拟内存空间中,通过映射的虚拟内存空间地址去操作共享内存,从而达到进程间的数据通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。本身不提供同步进制,可通过信...
2018-05-28 18:33:17
421
原创 消息队列
消息队列是内核中的一个链表用户进程将数据传输到内核后,内核重新添加一些如用户ID、组ID、读写进程的ID和优先级等相关信息后并打成一个数据包称为消息。允许一个或者多个进程往消息队列中写消息和读消息,但一个消息只能被一个进程读取,读取完毕后自动删除,消息队列具有一定的FIFO的特性,消息可以按照顺序发送到队列中,也可以几种不同的方式从队列中读取,每一个消息队列在内核中用唯一的IPC标识ID表示消息队...
2018-05-28 10:25:55
262
原创 System V IPC概述
1.System V引入了三种高级进程间的通信机制:消息队列、共享内寸和信号量 IPC对象(消息队列、共享内存和信号量)存在于内核中而不是文件系统中,由用户控制释放,不像管道的释放由内核控制 IPC对象通过其标识符来引用和访问,所有IPC对象在内核空间有唯一性标志ID,在用户空间的唯一性标识符称为key LINUX IPC 继承自System IPC2. System V IPC对象...
2018-05-28 10:10:12
6451
原创 mosquitto_sub、mosquitto_pub命令参数解析
1) 开启一个终端用于订阅消息:mosquitto_sub -v -t sensor2) 开启另一个终端用于发布消息:mosquitto_pub -t senor -m 123) 发布消息后,可在订阅端看到已订阅成功的信息:sensor 12mosquitto_sub解析:是订阅端终端运行的命令,-v是打印详细信息,-t是需要订阅的主题,后面紧跟的参数就是主题,这里主题叫sensor。mosqui...
2018-05-27 03:49:26
17757
原创 Xshell安装及与服务器建立连接过程
Xshell是Windows下一款功能非常强大的安全终端模拟软件,支持Telnet、Rlogin、SSH、SFTP、Serial 等协议,可以非常方便的对linux主机进行远程管理。Xshell下载地址:https://www.netsarang.com/products/xsh_overview.html 下载后按照提示进行安装即可(注意安装时授权选择“Free for Home/School”...
2018-05-27 03:42:35
78573
1
原创 Azure云服务器搭建
1. 创建学生账号,获取免费使用权登陆教育专业人员专属网站并验证,网址如下:https://azure.microsoft.com/zh-cn/education/2.仪表板中创建虚拟机2.1 选择所需的虚拟机类型:这里我们选择ubuntu系统2.2 配置虚拟机参数:这里我们需要关注用户名及密码2.3 配置完成的主页面:这里我们主要关注生成的IP地址...
2018-05-27 03:39:03
10588
原创 无名管道和命名管道的异同点
【无名管道】特点:1、只能用于具有亲缘关系的进程之间通信(父子进程或者兄弟进程)。2、是一个单工(半双工)的通信模式,具有固定的读写端。3、每次使用都需要创建管道对象。【有名管道】特点:1、可以在互不相关的进程之间实现通信。2、改管道是通过路径名来指出,在文件系统中是可以看到的,在建立管道后可以当做普通文件来使用读写操作。3、严格遵循先进先出的规则,对管道及FIFO的读总是从开始处返回数据,对它们...
2018-05-26 11:26:47
4009
原创 命名管道的通信举例
fifo_read.c#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <string.h>#include <unistd.h>int main(int argc,char **argv){ if(argc<2) { printf...
2018-05-26 11:18:43
563
原创 无名管道(pipe)--实现管道双向通信
上一篇的管道通信可以看得出来,管道通信是单向的,只能一端写入,一端读取,有点类似通信中的单工通信,若要实现双工通信,可以采用两个单工通信。同样的道理,要实现管道双向通信,采用两个管道即可。 上图完成这样一项任务:父进程负责输入两个数据x,y到管道,然后从管道读取他们相加的返回结果,子进程从管道读取x和y的值,执行add操作(这里还是和上个程序一样,采用exec函数来执行程序,所以必...
2018-05-26 11:14:39
6074
原创 无名管道(pipe)通信
这个程序用无名管道实现命令 cat /etc/passwd | grep root其实在终端命令中 | 就是一个管道 cat /etc/passwd会把结果打印到标准输出 ,grep root 会把结果从标准输入实现流程:1.父进程生产两个子进程(进程扇的概念)2.子进程A: a: 把标准输出定位到管道写端,因为此时cat /etc/passwd的结果原本要输出到标准输出,这里我们必...
2018-05-26 10:51:49
424
转载 radon变换用于车牌图像倾斜矫正
本文转载至:https://www.cnblogs.com/virqin/archive/2012/05/22/2514083.htmlRadon变换定义:下图显示了在指定的旋转角度的单一投影。间距为1个像素的平行光穿过图像,则radon变换计算穿过图像长度上的积分,即 式中 旋转角度为θ的平行束投影 f(x,y) 在垂直方向的线积分是f(X,Y)投影到X轴;在水平方向的...
2018-05-25 10:58:17
8614
原创 Linux多线程(十二)线程和信号量
1.进程中每个线程都有自己的信号屏蔽字和信号未决字2.信号的处理方式是进程中所有线程共享的3.进程中的信号是递送到单个线程的4.定时器是进程资源,进程中所有的线程共享共同的定时器例1: 下面这个例子通过一个子线程调用了alarm函数产生alarm信号,由于信号的处理方式就是进程中所有线程共享的,这个时候也就是说主线程和该子线程都有可能捕获该信号,通过下面的程序可以看出,是主程序捕获了信号...
2018-05-22 22:36:04
1878
1
原创 Linux多线程(十一)信号量实现条件变量
这份代码也是基于上两篇博文修改,利用信号量实现了条件变量:源码1:#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <semaphore.h>typedef struct{ int res; sem_t sem;...
2018-05-22 15:07:06
809
原创 Linux多线程(十一)信号量实现互斥锁
这份代码是在之前介绍的互斥锁的代码上直接改过来的,可以对比看看account.h:#ifndef __ACCOUNT_H__#define __ACCOUNT_H__#include <pthread.h>#include <semaphore.h>typedef struct{ int code; double balance; sem_t sem;}Acco...
2018-05-22 14:39:43
667
原创 Linux多线程(十)信号量
相关函数:#include <semaphore.h> int sem_init(sem_t* sem, int pshared, unsigned int value); int sem_destroy(sem_t *sem); int sem_wait(sem_t *sem); int sem_trywait(sem_t *sem); int sem_post(sem_t...
2018-05-22 14:20:11
467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人