自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(100)
  • 资源 (9)
  • 收藏
  • 关注

原创 字节长度与打印格式

采用的编译器是GCC,32位系统上sizeof : int = 4, long = 4, long long = 8sizeof: float = 4, double = 8, long double = 864位系统上sizeof : int = 4, long = 8, long long = 8sizeof: float = 4, double = 8, long doubl

2017-09-22 17:59:34 1202

转载 长期运行程序的文件描述符泄漏问题

摘自https://oroboro.com/file-handle-leaks-server/So you’ve created a socket server that opens sockets over TCP/IP. After running it for a few hours under heavy load the operating system kills yo

2017-07-26 17:13:18 2599

转载 Close on exec by deault

Excuse me son, but your code is leaking !!!I have written over the years about leaked file descriptors, and what a pain they have been to SELinux.C on Unix many many years ago was

2017-04-13 23:36:46 686

转载 键盘按键和字符的英文名

Key/SymbolExplanationWindowsPC keyboards have a Windows key that looks like a four-pane windowCommandApple Mac computers have a command key.MenuPC keyboards als

2017-04-09 16:24:15 4140

转载 “Parameter” vs “Argument”

A parameter is the variable which is part of the method’s signature (method declaration). An argument is an expression used when calling the method.Consider the following code:void Foo(int i, fl

2017-04-09 16:05:48 573

原创 进程与线程

1、多进程比多线程的缺点:> It is difficult to share information between processes. Since the parent andchild don’t share memory (other than the read-only text segment), we must usesome form of interprocess

2017-03-14 23:42:56 435

原创 The Linux Programming Interface 笔记之malloc和free的实现

Althoughmalloc() and free() provide an interface for allocating memory that ismuch easier to use than brk() andsbrk(), it is still possible to make various programmingerrors when using them.

2017-02-04 23:20:20 618

转载 off-by-one(大小差一)错误介绍

详细了解请移步这里off-by-one,大小差一错误是一类常见的程序设计错误。这方面有一个经典的例子OpenSSH.去Google搜索关键词“OpenSSH off-by-one”可以了解相关状况。具体来说,1. if(id channels_alloc)...2. if(id = channels_alloc)...第二句应该是正确的写法。举个更通俗的例子:int a

2017-02-04 22:55:09 2326 2

原创 当进程退出后,动态申请的内存会自动释放吗

stackoverflow有人问了这么一个问题,下面这段程序执行完毕后,malloc的内存会释放吗int main () { int *p = malloc(10 * sizeof *p); *p = 42; return 0; //Exiting without freeing the allocated memory}赞数最多的这么回答:It depends

2017-02-04 20:50:03 12814

原创 Linux笔记--二

1、Unix IPC分类:

2017-02-03 17:20:23 748

原创 Linux驱动笔记

1.Linux设备类型:字符设备,块设备,网络设备。(1)字符设备    作为字节流来处理。至少实现open,close,read,write系统调用。在文件系统的/dev目录下。(2)块设备    整块IO操作。与字符设备接口不同。在文件系统的/dev目录下。(3)网络接口    网络接口一般是硬件,也可以是软件,如loopback。并不在文件系统/dev目录下,没有路径

2016-08-23 11:20:32 521

转载 柔性数组

* 柔性数组即数组大小待定的数组 * C语言中结构体的最后一个元素可以是大小未知的数组 * C语言中可以由结构体产生柔性数组#include #include typedef struct _soft_array{ int len; int array[];}SoftArray;int main(){ int

2016-07-21 16:14:22 465

转载 do...while(0)的妙用

在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在

2016-07-12 09:48:35 342

转载 Linux内核源码树学习:Kconfig和Makefile

Linux内核源码树的每个目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在执行内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config,就知道了用户的

2016-07-01 14:30:57 605

转载 awk之变量篇

转自Eagle_6151.数值变量和字符串变量数值常量可以为整数,浮点数,或科学计数法,字符串括在双引号1.1初始化与强制类型转换          未经初始化的变量的值是0或者"",究竟是哪个取决于他们被使用时的上下文。          强制将字符串转换为数字:          name + 0          将数字转换成字符串的方

2015-12-01 23:03:55 1254

原创 安卓APK去广告的一种方法

APK去广告所需资源如下:1.要去广告的apk文件2.反编译工具apktool  apktool3.JDK(用于签名APK) 过程大体分为以下四步:解包、去广告、打包、签名,具体如下:1.解包解压下载的apktool压缩包,并把apk文件拷贝到该目录下。dos下进入解压后的目录,执行如下语句,得到解包的apk文件夹(例子中apk文件名为phys.apk,

2015-11-19 21:54:08 10733 1

转载 如何快速掌握一门技术

几周前一个朋友也打算通过跑步来甩一甩脂肪,控制一下自己那已经严重扭曲了的身材 —— 他便求教我从衣服到鞋,从腕表到心率带,都买了什么装备,性能如何,他好照着原样来一套。我告诉他我什么装备都没买,跑了半年多了,我还是随便套上件纯棉的T恤,穿条舒服的运动短裤,蹬着跑鞋,抓着手机,就这么跑将起来。他连连说不信,一个连排汗速干的衣服,臂包,运动腕表都没配的人,怎么也能(配得上)跑步?这让我想起了我

2015-11-18 22:46:42 519

原创 Effective C++笔记 55条编程法则

1.  视C++为一个语言联邦C++高效编程守则视状况而变化,取决于你使用C++的哪一部分。2.  尽量以const,enum,inline替代#define1) 对于单纯常量,最好以const对象或enum替换#define2) 对于形似函数的宏,最好改用inline函数替换#define3.  尽可能使用const1)如果关键字const出现在星号左边,表示被指物是常量

2015-07-10 16:55:54 1408

原创 泛型和面向对象C++

1. 在类内部定义的函数默认为inline......4.由于流对象不能复制,因此不能存储在容器中;由于流不能复制,因此形参或返回类型也不能为流类型,必须用指针或引用,对IO对象的读写会改变它的状态,因此引用必须是非const的。

2015-06-30 22:23:03 1678

原创 操作系统笔记

1.操作系统的特性:并发性、共享性、异步性和虚拟性。2.特权指令与非特权指令:(1)特权指令。只能在管态才能执行的指令为特权指令。这些指令一般只有操作系统才能执行,而一般用户程序不能执行。(2)非特权指令。在管态和目态均可执行的指令为非特权指令。3.处理器的状态:管态和目态,程序状态字中的一位标识。(1)管态:也称为系统态、核心态,是操作系统运行时所处的状态。(2)目态:也

2015-05-06 16:26:43 2916

转载 C++虚函数表深入剖析

多态性给我们带来了好处:多态使得我们可以通过基类的引用或指针来指明一个对象(包含其派生类的对象),当调用函数时可以自动判断调用的是哪个对象的函数。一个函数说明为虚函数,表明在继承的类中覆盖这个函数时,当调用这个函数时应当查看以确定调用哪个对象的这个函数。         (注:虚函数只能借助于指针或者引用来达到多态的效果。直接通过类的对象进行函数调用,而非指针或引用,即使被调用的函数是虚函数也

2015-05-06 16:24:45 743

原创 杂乱知识点

1.程序员和编译器不能用表达式(x-y<0)来替代(x<y),因为前者可能会产生溢出。甚至于也不能用表达式(-y<--x)来替代,因为在二进制补码表示中负数和正数的范围是不对称的。算术溢出是造成程序错误和安全漏洞的一个常见根源。

2015-03-30 11:55:58 661

转载 Ubuntu6.10 以后默认shell为dash,非bash

目录Dash as /bin/shWhy was this change made?My production system has broken and I just want to get it back up!I am a developer. How can I avoid this problem in future?[[[(($((n++)), $((--n))

2015-02-04 10:12:45 1914

转载 C,C++宏中#与##的讲解

文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x) #x之后,下面二条语句就等价。       char *pChar = "hello";

2015-01-24 12:48:14 706

原创 BTEA算法C语言实现

#include #include using namespace std;#include #define DELTA 0x9e3779b9#define MX (((z>>5^y>3^z<<4)) ^ ((sum^y) + (key[(p&3)^e] ^ z))) void btea(uint32_t *v, int n, uint32_t const key[4]) {

2015-01-22 22:32:44 2843

原创 利用管道获取控制台程序的标准输出

1.该程序调用控制台程序hello.exe,通过管道获取到hello.exe的标准输出数据,并打印到当前程序的标准输出。#include #include #include using namespace std;void invoke(string exe);int main(int argc, char* argv[]){ string exe = "hello.exe

2015-01-22 21:35:00 5953 5

原创 MD5和SHA1算法C++实现及运行时间分析

1.MD5代码实现HMAC.H即MD5头文件。#ifndef HMAC_H#define HMAC_H// POINTER defines a generic pointer type typedef unsigned char *POINTER;// UINT2 defines a two byte word typedef unsigned short int UINT2

2015-01-21 22:32:01 3026 1

原创 windows编写动态链接库DLL

1. 在VC中新建win32控制台工程,该工程调用动态链接库my.dll中的函数add,实现加法,代码如下#include #include typedef int(*lpAddFun)(int, int);//宏定义函数指针类型int main(int argc, char *argv[]){ HINSTANCE hDll;//DLL句柄 lpAddFun ad

2015-01-21 22:11:14 1652

原创 C/C++/MFC时间用法

1. C\C++中用法/* strftime example */#include      /* puts */#include       /* time_t, struct tm, time, localtime, strftime */int main (){ time_t rawtime; struct tm * timeinfo; char buffer [8

2015-01-21 21:46:09 1555

转载 MFC获得当前应用程序目录的GetCurrentDirectory()和GetModuleFileName()函数

在开发过程中经常需要获得程序当前的运行目录,这时就可以使用GetCurrentDirectory()和GetModuleFileName()函数,GetCurrentDirectory只是返回当前进程的当前目录,而并不是进程的镜像文件(.exe)所在的目录,GetCurrentDirectory()适用于XP等系统,,在WinCE上不能使用,GetModuleFileName()适用于WinCE2

2015-01-18 14:36:18 1084

转载 常量指针与指针常量的区别

三个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:1)const int *p

2015-01-08 16:17:41 578

转载 Nagle算法--TCP缓冲区管理算法

说明:本文是最近项目上使用tcp时遇到的问题找到的原因,参考了网络上的几篇文章整理出来,如有版权问题,请留言。   Nagle算法用于对缓冲区内的一定数量的消息进行自动连接。该处理过程(称为Nagling),通过减少必须发送的封包的数量,提高了网络应用程序系统的效率。1. Nagle算法的规则  (可参考tcp_output.c文件里tcp_nagle_check函数注释)

2015-01-03 19:41:07 1375

转载 eclipse最有用快捷键整理

在网上搜eclipse快捷键,可以搜出一大堆,大多罗列了n多的快捷键,估计大部分人看了以后都会头大的,我也头大,不过我一一尝试了一遍,整理出了eclipse最常用最有用,写代码必须用到的一些快捷键,大约只有网上快捷键大全的一半,减少大家的记忆量。如果大家把这些快捷键都很好的运用,写代码的效率一定会有提高。当然你也可以通过菜单栏中Window–>Preferences–>General–>Keys来

2014-12-08 15:36:48 602

转载 C++之string类

相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str

2014-11-10 10:20:26 851

转载 C语言文件操作fgets()

来说一说fgets(..)函数。    原型  char *  fgets(char * s, int n,FILE *stream);    参数:         s: 字符型指针,指向存储读入数据的缓冲区的地址。         n: 从流中读入n-1个字符         stream : 指向读取的流。   返回值:       

2014-11-10 10:17:50 880

转载 vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess

目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了《vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess》,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题)。三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程

2014-11-07 21:51:34 2377

转载 C和C++相互调用 error LNK2001: unresolved external symbol

在项目中融合C和C++有时是不可避免的,在调用对方的功能函数的时候,或许会出现这样那样的问题。近来在主程序是C语言,而调用C++功能函数的时候,C++的*.h头文件都能找到,功能函数也都定义了,最重要的是,单独编译C++的时候完全没有问题,但当用主程序的C调用C++的功能函数时总是提示该函数未定义(undefined)。这是什么问题?如何解决?关键点在这里:我们就靠在C++的*.h和*

2014-10-31 21:21:22 2317

转载 Visual Studio (VS)和Visual Assist X(VA)快捷键

“文本操作”快捷键命令名快捷键说明编辑.折叠到定义Ctrl + M,Ctrl + O自动确定在代码中创建区域的逻辑边界(如过程),然后隐藏它们。编辑.注释选定内容Ctrl + K,Ctrl + C使用编程语言的正确注释语法将代码的当前行标记为注释。(vc200

2014-10-30 20:11:50 3874

转载 VC++动态链接库(DLL)编程深入浅出

1.概论  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。  静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该D

2014-09-28 22:02:00 1162

原创 网络编程技术笔记

1. 网络数据传输时需要考虑字节序问题,即大端小端问题: x86系列CPU都是little-endian的字节序.网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。为了进行转换 bsd socket提供了转换的函数 有下面四个h

2014-09-19 10:35:31 1315

Hands.On.Machine.Learning.with.Scikit.Learn.and.TensorFlow

Fast-forward 10 years and Machine Learning has conquered the industry: it is now at the heart of much of the magic in today’s high-tech products, ranking your web search results, powering your smartphone’s speech recognition, and recommending videos, beating the world champion at the game of Go. Before you know it, it will be driving your car.

2017-11-07

Deep Learning 英文原版

Deep Learning 英文原版 Ian Goodfellow Yoshua Bengio Aaron Courville This book is about a solution to these more intuitive problems. This solution is to allow computers to learn from experience and understand the world in terms of a hierarchy of concepts, with each concept defined in terms of its relation to simpler concepts. By gathering knowledge from experience, this approach avoids the need for human operators to formally specify all of the knowledge that the computer needs.

2017-11-05

APK去广告的一种方法

APK去广告所需资源如下: 过程大体分为以下四步:解包、去广告、打包、签名,具体如下:

2015-11-19

面向对象程序设计(C++)课件

相当经典的C++入门到精通课件,想学C++的人有福了!

2011-09-22

数值计算方法的一些课件

学习数值计算方法必备课件,可供老师学生使用。

2011-08-21

C++单词分析程序代码

输入所给文法的源程序字符串,输出源程序字符串以及分类单词(如运算符,保留字,常量等)到控制台以及文件。

2011-07-19

空空如也

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

TA关注的人

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