- 博客(33)
- 收藏
- 关注
原创 baidu-brpc学习之文件传输实例编写
file.proto// Licensed to the Apache Software Foundation (ASF) under one// or more contributor license agreements. See the NOTICE file// distributed with this work for additional information// r...
2019-11-30 18:27:52 930 3
原创 2019年的第一场雪(北京)
感觉已经好几年没有遇到这样的雪了,漂泊在北京,一年又要翻篇了。可是愿景和理想呢。。。。。。?去公司的路上,公交站旁,被这一片景色吸引,那一瞬间就像是阔别多面再又重逢的一种感觉!刚进公园的步行道路!不知道是河流映衬下的雪景还是雪景映衬下的河流 呢! 这张真的是美醉了,心旷神怡!...
2019-11-30 12:19:02 287
原创 baidu-brpc学习之简单使用实例编写
rpc_proto文件:syntax="proto2";package example;option cc_generic_services = true;//=====service 1message EchoRequest { required string message = 1;};message EchoResponse { require...
2019-11-28 20:22:53 1262
原创 gdb调试完整显示字符串信息设置方法
set print elements number-of-elementsset print elements unlimitedSet a limit on how many elements of an array gdb will print. If gdb is printinga large array, it stops printing after it has...
2019-11-26 14:44:28 1140
转载 GPU编程语言选择(OpenCL、CUDA与C++ AMP)
其实在C++ AMP之前已经有了两个异构编程框架:CUDA与OpenCL。CUDA(Compute Unified Device Architecture)是显卡厂商Nvidia于2007年退出的业界第一款异构并行编程框架。在Nvidia的大力支持下,CUDA拥有良好的开发环境,丰富的函数库,优秀的性能。但是CUDA只能被用于在Nvidia的显卡上进行异构编程,有先天的局限性。OpenCL(O...
2019-11-26 13:54:55 845
原创 命令行参数解析的一个范例 C++
这里先简单说明一下getopt()函数的使用方法,然后给出一个总体的解析框架。//头文件#include <unistd.h>//定义函数int getopt(int argc, char *const argv[], const char *opstring)其中函数的argc和argv参数通常直接从main的参数直接传递而来。optstring是一个包含合法选...
2019-11-26 10:28:08 312
原创 Linux线程通信eventfd
概述eventfd是linux新加入的API(2.26.22内核之后),为用户空间应用程序提供等待(wait)和通知(notify)机制,函数eventfd创建的fd可以加入epoll。eventfd()创建一个“eventfd对象”, 通过它能够实现用户态程序间(我觉得这里主要指线程而非进程)的等待/通知机制,以及内核态向用户态通知的机制(未考证)。此对象包含了一个被内核所维护的计数(ui...
2019-11-23 17:06:42 395
转载 Linux select一网打尽
select, 你可以不用它,但你不能不了解它。通过阅读本文,可以帮你理清select的来龙去脉, 让你从中了解到: 我们常说的select的1024限制指的是什么 ?怎么会有这样的限制? 都说select效率不高,是这样吗?为什么 ? select使用中有坑吗? 注:本文的所有内容均指针对 Linux Kernel, 当前使用的源码版本是 5.3.0原型...
2019-11-23 11:31:41 299
原创 python操作redis接口(连接)
redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用。如果需要另一个Redis实例(or Redis数据库)时,就需要重新创建r...
2019-11-22 15:44:13 387
转载 python之socket编程
Socket是什么呢?socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)基本上,Socket 是任何一种计算机网络通讯中最基础的内容。例如当你在浏览器地址栏中输入 http://...
2019-11-22 14:24:42 213
原创 Ubuntu下的apt包管理工具使用总结
概述:Advanced Packaging Tool(APT)apt-cache和apt-get是apt包的管理工具,他们根据/etc/apt/sources.list里的软件源地址列表搜索目标软件包、并通过维护本地软件包列表来安装和卸载软件。操作命令:apt-get:sudo apt-get update : 根据源地址列表更新本地软解包列表;sudo apt-get...
2019-11-21 18:53:55 492
转载 软件工程中的常见耦合
耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。一般模块之间可能的连接方式...
2019-11-20 10:45:44 1013
转载 生成器模式BUILDER以及C++实现
意图:将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。适用性:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 当构建过程必须允许被构建的对象有不同的表示时。效果:使得可以改变一个产品的内部表示。 使得构造代码和表示代码分离。 使得可以对构建过程进行更精确的控制。演示模型和实现代码:代码以构建Room为实例,而Room由四个S...
2019-11-19 16:50:57 234
原创 UML类图建模简述
类图类图展示了面向对象系统的构造模块。描绘了模型或部分模型的静态视图,显示它包含的属性和行为,而不是详细描述操作的功能或完善方法。类图最常用来表达多个类和接口之间的关系。泛化(Generalizations)聚合(aggregations)和关联(associations)分别是类之间继承,复合或应用,及连接的表现。下面的图显示了类之间的聚合关系。弱聚合(浅色箭头)表现在类 "Accoun...
2019-11-19 16:18:06 1978
原创 Enterprise Architect 14安装
下载连接:https://pan.baidu.com/s/1JWZHjdFlfai2H23OPyr2Zg提取码:b7c9双击easetup安装:安装完之后使用patch目录中的EA替换安装目录下的EA程序即可。
2019-11-19 11:56:56 1520 1
原创 访问者模式复习及C++实现
意图:GOF的书上有这样的描述:表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。类图结构:演示模型和代码:这里的访问者是水费收费员(VisitorWater)和电费收费员(VisitorElectric),对象结构是整个村庄(Village), 各元素为各个具体家庭((小华家)FamilyXiaoHua、(小明家)Fa...
2019-11-19 11:48:40 178
原创 Windows下从CreateThread替换为_beginthreadex的宏定义
Createhread的函数声明:HANDLEWINAPICreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_opt_ __drv_a...
2019-11-18 11:03:37 284
原创 Linux4.4.0-21内核版本下一个简单的netfilter实例源码
本实例其实是《Linux网络编程》第二版第17章的一个netfilter框架的演示实例,但是在新版本内核下因为一些数据结构和常量定义名的调整是不能编译通过的。这里是在4.4.0-21内核版本下经过一些细节修改以及自己编写的用户态设置套接字选项的代码。test.c#include <linux/netfilter_ipv4.h>#include <linux/modul...
2019-11-16 15:23:24 961
原创 Linux内核create_singlethread_workqueue与create_workqueue学习
区别:使用create_singlethread_workqueue创建工作队列即使对于多CPU系统,内核也只负责在一个cpu上创建一个worker_thread内核线程;而使用create_workqueue创建工作队列对于多CPU系统,内核将会在每个CPU上创建一个worker_thread内核线程,使得线程处理的事务能够并行化.代码:worker_thread.c#inc...
2019-11-16 12:46:01 1254 1
原创 Linux内核线程学习
kernel_thread.c#include <linux/module.h>#include <linux/moduleparam.h>#include <linux/init.h>#include <linux/kmod.h>#include <linux/sched.h>#include <linux/del...
2019-11-16 12:37:46 133
原创 Linux中mdelay()和msleep()学习总结
Linux内核开发中,mdelay()和msleep()都有延时作用,但它们是有区别的。共同点:mdelay()和msleep()都是延时的毫秒数。 不同点:mdelay()是忙等待函数,其在延时过程中是占用cpu资源的,被占用的cpu同一时间不能执行其他任务;而msleep是休眠函数,是将当前调用线程挂起一段时间,不占用cpu资源。 另外一点区分udelay()、mdelay()、nde...
2019-11-16 11:43:37 1605
原创 C++常指针和指针常量的语法分析方法与理解
是不是常常为以下几种变量定义类型而困惑呢?const char **pointer char *const *pointer char **const pointer ......上面的变量定义涉及三种类型的C++关键字:类型限定符const、变量类型char、指针修饰*,这里语法遵循的一个基本原则是:指针修饰符*后面紧跟的任意类型的修饰符都是修饰所指向内存单元的元素。...
2019-11-15 12:43:03 199
原创 MFC项目实例源码
感觉已经N多年没写过界面了,突然让人写当时还有点不太乐意,但如之奈何呢?这个小项目花了一天的时间总算是完成了吧,记录一下就当是以后此类开发的一个借鉴模板!当然也希望对像我这样不怎么玩界面的同学也能有所帮助吧!项目连接:https://pan.baidu.com/s/1oA83M7mup1eZqHN-h0g6aQ主界面: 托盘缩...
2019-11-12 17:06:38 2679
转载 淘宝双11,亿级流量高并发是怎么抗住的?后台架构的演进!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-11-12 11:44:15 828
原创 Linux内核空间文件操作函数
在内核中操作文件的函数与用户空间不同,需要使用内核空间专用的一套函数,主要有filp_open()、filp_close()、vfs_read()、vsf_write()、set_fs()、get_fs()等,上述函数在头文件linux/fs和asm/uaccess.h中声明。1.内核空间中的文件结构内核中对文件操作额文件结构struct file,是进行文件操作时经常使用的结构,结构的...
2019-11-09 17:05:00 2134
原创 程序调用导入函数过程详解
在日常的程序开发中共享库的使用非常普遍,是代码重用非常重要的技术。那么程序是如何调用共享库中的代码段的呢?首先看一段汇编代码如下图,其中调用了两个导入函数MessageBoxA(user32.dll)和ExitProcess(kernel32.dll),以第一个函数为例进行分析,其中非常关键的一行代码是:JMP NEAR DWORD PTR DS:[BD2008],无条件转移指令跳转到0XBD20...
2019-11-06 14:20:26 857 1
转载 nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
https://blog.csdn.net/qq_40036754/article/details/102463099
2019-11-06 10:01:07 282
转载 C++linux后台服务器开发技术线
随着业务市场的不断壮大,更便捷的开发语言也越来越受到市场的欢迎。Java,python还有新贵golang。那c++语言的开发者市场在哪里。虽然说没有活干说的可能过于夸张,但是面临的事实就是比不了。可能初学一点Java,python等等就能找到一份不错的开发工作,但是如果你只会一点c,又不是校招的话,能找到哪些工作呢?c++不同于Java。Java的技术路线是比较固定的,学好技术栈等待新技...
2019-11-05 19:53:35 348
转载 Makefile中:= ?= += =含义小结
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endififeq (...
2019-11-02 14:07:48 256
原创 Ubuntu下netlink套接字测试实例
此项目在Linux ubuntu 4.4.0-21-generic实际环境中正常运行。1.sender.c用户态netlink程序#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <string.h>#include <linux/netl...
2019-11-01 21:03:20 689
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人