
C/C++编程
文章平均质量分 66
良少
资深挨踢人士,精通Python,C,Java,JavaScript,Linux内核,网络协议,虚拟化,云计算,分布式存储,kubernetes,数据仓库等技术。擅长微服务架构设计,DevOps。目前致力于以Fintech助力普惠金融。
展开
-
[优快云论坛强贴]VC程序员之无法选择的命运
这是我刚刚在优快云的论坛上看到的一篇帖子。其中的讨论很有意义,对于C++和其他程序员都有警示意义。其中讨论,贤与愚者争锋。我就不予置评了,相信读者心中自有见解。 主 题: VC程序员之无法选择的命运转载 2007-01-11 13:39:00 · 4426 阅读 · 1 评论 -
net_sf_interfacecpp项目诞生宣言
net_sf_interfacecpp项目诞生宣言 我的C++情结经过近两个月的努力,我的第一个C++开源项目net_sf_interfacecpp的第一个版本0.1版终于问世了。 项目地址:https://sourceforge.net/projects/interfacecpp/ 源码下载地址https原创 2008-01-11 00:02:00 · 6432 阅读 · 29 评论 -
虚拟机活迁移揭秘
前几天有个朋友问我vmware虚拟机活迁移后台是怎样实现的。我给他讲解了KVM活迁移的原理。今天就在这里写出来分享。 vmware是闭源的,因此无从知道它的活迁移究竟是怎么做的。但是KVM的功能比vmware并不少,也实现了活迁移。Vmware的活迁移应该在原理上和KVM相同吧原创 2011-05-10 19:59:00 · 10037 阅读 · 14 评论 -
深入解析JNA—模拟C语言结构体
深入解析JNA—模拟C语言结构体 前言前几天写《JNA--JNI终结者》一文介绍JNA框架。写完之后才发现,忘了写比较有难度的C语言Struct的模拟了。今天就补上这篇文章,介绍Struct。不写怎样模拟C语言结构体,就不能算是真正解决了调用动态链接库的问题。C语言的结构体用得实在是太广泛了。 首先说明一点,本文中大量把模拟Struct的原创 2008-12-25 01:20:00 · 34569 阅读 · 33 评论 -
JNA两篇Blog的完整源代码
贴上JNA—JNI终结者、深入解析JNA—模拟C语言结构体两篇文章的完整源代码 C语言源代码: 头文件 #define MYLIBAPI extern "C" __declspec(dllexport ) MYLIBAPIvoid say(wchar_t* pValue); struct UserStruct{原创 2008-12-25 01:27:00 · 13685 阅读 · 5 评论 -
JNA—JNI终结者
JNA—JNI终结者 介绍给大家介绍一个最新的访问本机代码的Java框架—JNA。JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。JNA项目地址:https://jna.dev.java.net/ 非常强大、易用,功能上类似与原创 2008-12-23 15:03:00 · 109749 阅读 · 84 评论 -
Linux内核中链表和散列表的实现原理揭秘
inux内核的实现,大量使用了数据结构,包括了数组、链表和散列表。其中用的最多的是双向循环链表。Linux内核使用的是自己定义的链表和散列表,简单而高效,使用方法也非常的别具一格。研究Linux内核的链表和散列表对于看懂Linux内核源源代码有重要的意义。原创 2011-07-14 11:37:02 · 10142 阅读 · 7 评论 -
C99的新关键字_Bool
<!--@page {margin:2cm}p {margin-bottom:0.21cm}a:link {}-->原创 2011-07-19 21:32:43 · 5647 阅读 · 1 评论 -
使用call_usermodehelper在Linux内核中直接运行用户空间程序
有时,我们的内核模块或者内核线程希望能够调用用户空间的进程,如,一个内核线程想神不知鬼不觉地偷偷运行个有特权的后门程序。call_usermodehelper函数可以让我们在内核中轻松运行用户空间程序,完成任何你想要的需求。本文介绍如何使用call_usermodehelper原创 2011-07-19 21:03:50 · 19517 阅读 · 7 评论 -
Google C++ 风格指南 - 中文版
from http://code.google.com/p/google-styleguide/ 版本:3.133原作者:Benjy WeinbergerCraig SilversteinGregory EitzmannMark MentovaiTashana Landr转载 2011-09-09 09:51:21 · 16445 阅读 · 3 评论 -
QT4项目移植到QT5项目的方法
QT4项目在QT5中打开,常常会报告一些莫名奇妙的错误。QLabel,QApplication,QPushButton等常用的头文件都报告找不到。 到qt的安装目录中一看,却是存在的。这是怎么回事呢? 原来,QT5中很多常用的QT头文件都被移到core gui widgets 等模块中去了。在QT5中,.pro文件需要增加额外的一行:QT += core gui widge原创 2013-02-03 01:00:55 · 17022 阅读 · 8 评论 -
处理空格的就地字符串处理函数的实现
处理空格的就地字符串处理函数的实现原创 2012-09-09 18:07:43 · 6110 阅读 · 0 评论 -
深入浅出JNA—快速调用原生函数
深入浅出JNA—快速调用原生函数 本文原名《使用JNA方便地调用原生函数》发表于2009年3月的“程序员”杂志上。感谢程序员杂志的许可,使这篇文章能够成为免费的电子版,发布于网络上。原创 2009-07-20 07:04:00 · 26053 阅读 · 20 评论 -
Linux设备驱动开发示例
从头到尾开发了一个简单的Linux设备驱动。这是Linux设备驱动开发的起点。原创 2010-06-08 16:24:00 · 1787 阅读 · 1 评论 -
遍历Linux kernel的链表时删除元素的方法
内核的链表list_head设计相当巧妙。今天我说一下对list_head链表的遍历时如何删除元素。 链表遍历时,如果删除当前元素,一般都是会出错的。在所有语言的各种库中的链表都是如此。list_head也一样。 如,在java的遍历中删除当前元素,会原创 2011-05-05 19:10:00 · 7515 阅读 · 0 评论 -
SNMP Management与Agent间的关系
SNMP NMS和Agent之间的关系SET,GET与TRAP是组成SNMP的核心。 三种核心操作 SET 管理系统可以用来更新或改变一个代理所包含的某个对象的值 特权质量原创 2008-01-01 00:42:00 · 720 阅读 · 0 评论 -
在Windows和Visual Studio上安装Boost
在Windows和Visual Studio上安装Boost 下载并安装boost1,在boost的网站上下载一个boost的Windows版本的安装器。http://www.boost-consulting.com/download/windows这个程序会自动下载和安装boost。整个Boost有接近1G那么原创 2008-01-02 08:49:00 · 5236 阅读 · 0 评论 -
使用W3C标准的DOM处理XML文件[C++和Java版]
2008新年快乐!!!最近我在研究C++。在C++开发中,我选择了呼声最高的Xerces C++作为我的XML处理工具。 Xerces是一个完全符合W3C的DOM标准的项目。它完全提供了W3C的DOM标准规定的接口。在Java的JDK中提供的也是一个W3C的DOM标准接口。有理由相信,JDK提供的W3C的DOM实现就是Xerces的java版本!原创 2008-01-01 00:41:00 · 2675 阅读 · 0 评论 -
C++的泛型编程和限制参数类型的技术探讨
C++的泛型编程和限制参数类型的技术探讨 模板概述泛型是C++中的重要特性。据说,已经在C++社区中已经取代面向对象成为C++的主要编程泛型。STL和boost库等都广泛使用了泛型。泛型,就是C++的模板机制。模板可以看作是C++宏的衍生。宏,就相当于是文本文件中的替换。C++编译器在编译前,先把所有使用宏的地方,用原创 2008-01-12 21:45:00 · 10122 阅读 · 16 评论 -
C++资源之不完全导引(完整版)
C++资源之不完全导引(完整版) C++资源之不完全导引(完整版) 来源:www.youkuaiyun.com 撰文:曾毅、陶文转载 2008-01-16 14:18:00 · 4059 阅读 · 2 评论 -
泛型和模板的比较----源自MSDN
泛型和模板的比较----源自MSDN 在我的《主流编程语言优劣考》一文中,有不少朋友对我把“模板”和“泛型”这2个概念作为2个不同的事务来看待有异议。我告诉他们,在MSDN的C++/CLI中就有这样的定义。他们不信。唉!我就搞不懂了。为什么有些人会这么在意观点、定义的出处呢?难道不是名人说的,就肯定不是真理吗?难道权威就一定正确吗? 在转载 2008-08-04 00:09:00 · 3165 阅读 · 1 评论 -
主流编程语言优劣考
主流编程语言优劣考 前言 本文的目的并非是想挑起语言之争,而是希望通过客观地分析每一种主流语言的能力,辨明其长短,让程序员能够扬长避短,有效地使用各种语言。让各种语言能够各安其位,为你更好的服务。程序员应当成为语言的主人,而不是语言原创 2008-06-10 00:19:00 · 41324 阅读 · 88 评论 -
单向链表反转的问题
<br /><br /> 刚看到一篇文章,http://news.youkuaiyun.com/a/20100719/219154.html<br /> 说面试的一道题目是:<br />把N个元素插入到一个Vector里(或者ArrayList,或其它的你所选择的语言里被称作动态数组的东西)。<br /> <br /> 我的想法是,创建一个新的单向链表,这个链表插入新数据是在头部,而不是尾部。这样就可以了。<br /> 如Struct List{<br />原创 2010-07-21 00:18:00 · 2054 阅读 · 0 评论 -
C,Ruby, Io, PHP, Python, Lua, Java, Perl, Applescript, TCL, ELisp, Javascript, OCaml, Ghostscript性能比较
<br />Ruby, Io, PHP, Python, Lua, Java, Perl, Applescript, TCL, ELisp, Javascript, OCaml, Ghostscript, and C Fractal Benchmark<br />I've always enjoyed fractals, and was curious if scripting languages were up to the task. I wrote a very simple Mandelbrot s转载 2010-09-20 18:24:00 · 6544 阅读 · 5 评论 -
Unix编程哲学和软件设计方法
Unix编程哲学: 1,模块原则:使用简洁的接口拼合简单的部件。2,清晰原则:清晰胜于机巧。3,组合原则:设计时考虑拼接组合。4,分离原则:策略同机制分离,接口同实现引擎分离。5,简洁原则:设计要简洁,复杂度能低则低。6,吝啬原则:除非确无它法,不要编写庞大的程序。7,透明性原则:设计要可见,以便审查和调试。8,健壮原则:健壮源于透明与简洁。9,表示原则:把知识叠入数据以求逻辑质朴而健壮。10,通俗原则:接口设计避免标新立异。11,缄默原则:如果一个程序没什么好说的,就沉默。12,补救原则:出现原创 2011-03-02 23:06:00 · 2961 阅读 · 4 评论 -
Linux内核代码风格
Linux内核代码风格 By LinusTorvalds转载 2011-03-08 10:27:00 · 13729 阅读 · 5 评论 -
构建一个分布式操作系统的简单方案—答陈硕的“分布式系统中的进程标识”一文
本文提出了构建一个分布式操作系统的简单方案。核心是使用ssh的强大能力,构建一个简单、安全、灵活、高效的分布式操作系统!并且没有单点失效的问题。注意,是通用的分布式操作系统,而不是专用的分布式系统。原创 2011-03-29 16:20:00 · 9327 阅读 · 57 评论 -
Windows下开发中遇到问题的解决方案汇总
1,Visual Studio中报这个错误:Project : error PRJ0002 : Error result 31 returned from 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin/mt.exe'.如下方原创 2011-02-17 10:57:00 · 5603 阅读 · 3 评论 -
编程能力层次模型
程序员的编程技能随着经验的积累,会逐步提高。我认为编程能力可以分为一些层次。 下面通过两个维度展开编程能力层次模型的讨论。 一个维度是编程技能层次,另一个维度是领域知识层次。...... 有些程序员可能把精力都花在提升编程技能上了,领域知识知之甚少,这其实在日常工作中也是极其有害的。有些需求可能早已经有了现成、开源免费的解决方案,或者只需要组合几个现有软件就可以快速搞定,而他们却不得不自己花大量时间去开发。另外,缺少领域知识,在程序出现非预期状况时,很难快速定位到问题的根源,很难解决bug。原创 2015-02-15 15:30:39 · 18018 阅读 · 11 评论