自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 select, poll 和 epoll

本文中文件描述符是对内核中的 fd 的称呼相同点:这三个 I/O模型都是为了实现同一个目标——同时检查多个文件描述符,看它们是否准备好了执行 I/O。不同点:1. 关于水平触发和边缘触发select和poll只支持水平触发,水平触发是说文件描述符已经就绪,也就是说在这个文件描述符上是否可以非阻塞地调用 I/O函数.epoll 既支持水平触发,又支持边缘触发。边缘触发是说自...

2019-09-08 16:06:12 198

原创 C++有没有智能指针的区别的一个例子

一个类用的是智能指针指向的vector,一个类的用的是裸的vector. 在拷贝对象的时候出现不一样.智能指针版:#include <string>#include <iostream>#include <vector>#include <memory>#include <initializer_list> u...

2019-08-08 11:19:26 210

原创 同步,异步,阻塞,非阻塞是什么意思?

首先,本文讨论的单线程的问题,多CPU多线程的情况不在考虑范围,不过思想都是一样的。同步和异步同步是说当前代码不执行完,后面的代码,或者严谨点说,后面的指令将不执行。例如[1],下列,select 函数不返回,下面的代码将不会执行。异步,只是简单地向操作系统注册完一个函数,操作系统在IO操作完成后,用信号通知该进程。例如[2],第一行,signal不必等到 on_...

2019-05-28 23:35:54 2227

原创 软连接和硬连接的区别

1. 硬连接文件系统以Inode号为标识,而同时也提供可读性强的字符串作为文件的标识。对应关系如下面这样: 当我们在利用名字操作文件时,文件系统会转换为Inode进行操作。那么硬连接就是有不止一个名字对应于Inode。底层文件系统看来还是一个文件实体和一个Inode。如下图所示: 示例:图中,一开始创建了一个orgin文件,写入字...

2019-05-05 00:02:49 2979

原创 图解链表倒置

链表倒置是一个经常遇到的问题,下面将用图示的方式讲述链表倒置的过程。假设链表的长度为4,头指针head指向第一个节点。另外还有两个非常重要的指针,prev:带领head指针往下走,是个领航员,worker:位于head之后,为指针变换服务。最后返回的结果是一个head指针,指向的是一个已经倒置的链表。1. 初始化:Node *prev = null;Node *worker = n...

2019-05-01 11:52:33 1332

原创 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure的一个解决方案

当我使用 jdk 1.8_181 版本运行Java文件(Win10平台)时候,控制台出现如标题所示错误。其中一个解决思路是替换jdk版本当从 jdk 1.8_181 改为 jdk 1.8_161版本的时候,问题解决。jdk 1.8_161版本下载链接jdk 1.8_161,密码:53di另外的一个解决思路见:https://blog.csdn.net/gege87417376/...

2019-03-26 14:31:50 2671

原创 C语言函数调用的底层实现

最近在阅读大名鼎鼎的《深入理解计算机系统》,读到第三章,介绍了函数的底层实现。对底层的实现有了一些了解。为了理解,我就用书上的例子,如果在中途有出现的术语,我会就近解释。1. 背景全文将会围绕下面两个函数来介绍所有的实现机制,这两个函数是:第一个,主调用函数(它去调用另外一个函数 proc)long call_proc(){ long x1 = 1; in...

2019-02-24 10:50:08 6031

原创 win10 任务栏出现 FastPicEx DeskBand

解决办法:在任务栏空白位置上右击,然后选择工具栏,勾去FastPicEx。如下图所示

2019-02-19 15:15:32 17941 1

原创 Ceph通过本地源离线安装

环境:Ubuntu 16.04, Ceph 12.2.8第一步:下载相关的包首先,准备一台刚装好的Ubuntu系统。1.1 先替换成国内的源:sudo vim /etc/apt/sources.listdeb http://cn.archive.ubuntu.com/ubuntu/ bionic main restricteddeb http://cn.archive.u...

2019-01-14 11:19:56 2978 2

原创 Java中的对象复制是怎么回事?

在看《Java 2实用教程》中GUI中的源码时候,出现了一点疑惑,源码如下:import java.awt.*;import javax.swing.*;import java.awt.event.*;public class JavaGUI { public static void main(String[] args) { WindowActionEvent win = n...

2019-01-06 13:10:55 374

原创 怎么使用Maven打包普通java项目(两步走)

第一步:增加plugin,修改mainClass标签找到pom.xml文件,再找到&lt;build&gt;标签下面的&lt;pluginManagement&gt;下面的&lt;plugins&gt;标签,在这里:找到之后,请插入这样一个标签内容: &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;...

2018-12-20 21:42:06 2414

原创 Ubuntu本地源apt-get update出错:Hash Sum mismatch(hash校验错误)

在apt-mirror制作本地源的时候,当等待了一天一夜,下载完成之后。兴高采烈地apt-get update时候,报错了:E: Failed to fetch http://127.0.0.1/ubuntu/dists/xenial-updates/main/dep11/icons-64x64.tar.gz Hash Sum mismatchE: Some index files fa...

2018-12-04 18:42:48 1020

原创 Linux下GDB中的 attach pid 如何使用?

linux下使用gdb可以很好的跟踪代码。当然,让我觉得神奇的是它竟然能跟踪正在运行的进程。下面,我将用我的例子演示一下怎么使用的。第一步:获得正在运行的进程的进程号ps -ef | grep &lt;进程名&gt;我的就是:找到该进程的进程id,我的就是2486400, 下面根据这个进程号,attach到这个进程上去。第二步: gdb attach &lt;pi...

2018-11-14 18:01:59 14915

原创 pip 安装 uwsgi 出现错误

错误提示:Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-1a5m19e6/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');...

2018-11-02 11:56:12 882

原创 文件系统中目录和文件的理解

在最开始的开始,让我们了解一下两个事实:1、目录文件和普通文件都是文件2、操作系统想要管理这些文件,就需要得到两个东西,目录项(有时候也叫FCB)和文件内容其中目录项存放三个主要的内容:文件的名字,ID号,文件内容在物理设备的存储地址。那操作系统里的文件系统是怎么处理这些事务的。以Unix操作系统为例:不管是读文件,写文件,还是删除文件,重命名文件。最开始都需要查找到这个文...

2018-10-22 20:45:40 2940

原创 对C++ 虚函数的理解

今天下午看一个开源项目的源码时候,碰到了虚函数。为此,就去查资料了解一下C++虚函数实现机制。先上代码,对着代码讲。#include &lt;iostream&gt;#include &lt;stdio.h&gt;using namespace std;class Animal{public: virtual void eat(); // eat 指定为虚函数 v...

2018-10-16 20:30:50 302

原创 建立一个Ceph S3网关服务器

写作背景是这样的,公司有个项目,需要通过Ceph对象存储网关写1亿张图片到Ceph集群中,由于一个网关写入的速度比较慢,为了缩短写入时间,需要增加一些服务器作为网关,来将数据写入到集群中。 背景说完了,任务是增加一台集群外的服务器作为网关,如下图示意: 首先在服务器上安...

2018-09-14 11:03:24 1638

原创 Navicat 连接远程Mysql

在远程主机上1.修改mysql的配置文件,将绑定主机这一项注释掉:root@zjt:/# sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf   2.进入mysql交互模式,执行以下命令,记得修改成自己的密码:mysql&gt; grant all on *.* to root@'%' identified by '你的密码' wi...

2018-09-08 11:09:05 227

转载 Ceph集群增加Mon时出错:admin_socket: exception getting command descriptions: [Errno 2] No such file or direc

遇到这种错误,有两种可能:1. 配置项需要修改: 见下文解决方法2. hostname 需要修改: 见网址正文如下:当我用ceph-deploy工具为集群增加Mon时,即执行root@zjt-admin:/ceph/cluster# ceph-deploy --overwrite-conf mon add zjt-02出现以下错误:由下面这条警告知道,在ce...

2018-08-30 15:49:39 13824

原创 Ubuntu16.04如何挂载一块裸盘(分区,格式化和挂载三步走)

       在给电脑加入一块硬盘,或者给云主机加一块硬盘后,需要经过:分区 -&gt;格式化  -&gt;  挂载   这三个步骤,才能最终使用上这块硬盘。       首先,使用命令,列出想要使用的硬盘的情况。root@zjt-03:/# fdisk -l        这里,我想要挂载的是 /dev/vdb这块硬盘。       使用下面的命令管理这块硬盘, 执行这条...

2018-08-27 12:44:29 5330

原创 如何调试ceph-fuse

先说一下环境,本文采用的是Ubuntu16.04操作系统,Ceph版本12.2.7。创建一个开发者集群1.把Ceph源码git clone下来,git clone https://github.com/ceph/ceph.git2.这时候当前文件夹下面会有ceph子文件夹,进入ceph子文件夹,cd ceph3.切换到稳定版12.2.7, git checkout v12.2.7...

2018-08-23 17:23:15 771 1

peerconnection.rar

peerconnection.rar

2022-03-22

空空如也

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

TA关注的人

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