自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Welcome Home , Thierry Henry.

=亡念的扎姆德= =木头跑道=

  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

翻译 Block Bindings

Block Bindings一般来讲,变量的声明方式在 Javascript 的变成中是一个棘手的部分(tricky part)。在大部分 C-Based 语言中,变量是在声明的地方创建的。但是在 Javascript 中并不是如此。 你的变量创建的地方依赖于你是怎样声明这些变量的,在 ECMAScript 6 中提供了选择让你能够更容易的控制这些变量的作用范围。这一章节将讲述为什么传统的 var

2015-12-30 00:20:34 622

翻译 Understanding ECMAScript 6

原文内容列表简介 浏览器与 Node.js 兼容性这本书的受众概述帮助与支持Block Bindings var 声明与提升(Hoisting)块级声明循环中的块级绑定全局块级绑定-

2015-12-29 21:27:38 797

原创 一段小代码

今天在微博上看到一段小程序,博主问会不会core,如果core的话,会是在哪一行。程序代码如下。#include struct str{ int len; char s[0];};struct foo{ struct str *a;};int main(){ struct foo f = {0}; if(f.a->s) { printf(f.a->

2014-03-31 20:04:04 723

原创 Github上新建一个repository

1. 按照     https://help.github.com/articles/create-a-repo 这篇东西上面去做,即新建一个repo。使用ssh方式连接git的话,就先在本地利用ssh-keygen生成一个sshkey,过程中到所有输出直接回车就好2. 生成的key默认放到~/.ssh/ 这个目录下面的打开其中到的 id_rsa.pub,将文件中的所有内容复制到你

2013-10-25 20:44:35 919

原创 quick_sort.cc

//只是随手写写,非递归版的快排#include #include using namespace std;using std::stack;struct Node{ int begin, end;};int partition(int *a, int begin, int end){ int p = a[end]; int pos = begin; for(int

2012-10-29 22:04:57 602

原创 标准输入,标准输出和标准出错的缓冲

APUE第5章已经说得很清楚了,这里就记录一下。标准I/O提供3种缓冲类型:(1)全缓冲:填满标准I/O缓冲区后才进行实际的I/O操作。(2)行缓冲:当在输入和输出中遇到换行符('\n')时,才执行实际的I/O操作。         两个限制:          (a)缓冲区满了,好理解。          (b)任何时候遇到要求从一个不带缓冲的流,或者一个行缓冲的流(它要

2012-09-18 23:21:16 1320

转载 python 在linux中使用sqlite3

python 在linux中使用sqlite3  如果出现如下错误:>>> import sqlite3Traceback (most recent call last):  File "", line 1, in   File "/picb/extprog/inst/development/python-2.6.2-linux-amd64/lib/py

2012-09-14 19:14:54 3110

原创 一个仿照Nginx的内存池

mempool.{h,c}#ifndef _MEMPOOL_H_#define _MEMPOOL_H_#include #define POOL_ALIGNMENT 16typedef unsigned char u_char;typedef struct pool_data_s pool_data_t;typedef struct pool_s pool_t;

2012-09-05 13:46:08 1722

原创 memcached内存管理(3) ----------------assoc

assoc.{h,c}这个文件的作用是通过item的hash值来对item进行存取和删除的操作,当然删除是指从hash表中删除,而不是真正的释放内存一些重要的全局变量typedef unsigned long int ub4; /* unsigned 4-byte quantities */typedef unsigned char ub1;

2012-08-21 01:13:23 1437

原创 memcached内存管理(2) ----------------items

memcached.h中item的声明/** * Structure for storing items within memcached. */typedef struct _stritem { struct _stritem *next; struct _stritem *prev; struct _stritem *h_next; /* hash

2012-08-17 16:30:55 1821

原创 memcached内存管理(1) ----------------slabs

slabs.{h,c}slab的数据结构如下:typedef struct { unsigned int size; /* sizes of items   每个item的大小*/ unsigned int perslab; /* how many items per slab   每个slabs中能容纳多少个item*/ voi

2012-08-16 22:04:09 1951

原创 base64 编码解码 c语言实现

#include #include #include char *base64_encode(const char *src);char *base64_decode(const char *src);char table[] ={'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G','H' , 'I' , 'J' , 'K' , 'L' , 'M'

2012-08-16 20:11:51 1441

转载 Linux下core文件调试方法

原文地址:http://www.cnblogs.com/momi/archive/2012/03/18.html在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制  1)使用ulimit -c命令可查看c

2012-08-15 22:18:02 777

原创 c的2个struct 互相引用的例子

struct pool_data_s{ u_char *last; u_char *end; pool_t *next;} ;struct pool_s{ pool_data_t d; size_t max; pool_t *current;} ;上面的2个struct中都有相互引用,且在同一个文件中,只要加上如下语句即可typedef

2012-08-15 18:44:35 2964

转载 变长数组

#include typedef struct{ int d; int a[];}A;int main(){ printf("%d\n", sizeof(A)); A *a; int d = 10; a = malloc(sizeof(*a) + 3 * sizeof(int)); //memcpy(a->a, &d, sizeof(int)); *(a->a

2012-08-07 18:20:32 940

原创 memcached 内存管理的一点变化

<!--@page {margin:2cm}pre.cjk {font-family:"文泉驿微米黑",monospace}pre.ctl {font-family:"Lohit Hindi",monospace}p {margin-bottom:0.21cm}a:link {}-->memcached内存管理的一些小小的变化

2012-08-06 12:22:01 638

转载 epoll的使用

epoll的ET模式和LT模式可通过下面代码来测试int handleMessage(int sockfd){ char buf[MAXBUFF + 1] = {0}; int len; len = recv(sockfd, buf, MAXBUFF ,0); if(len > 0) { printf("%d:%s\n%d bytes received.\n", sockfd

2012-07-23 17:06:57 581

转载 编码字符集与字符集编码的区别

我自己的理解:   编码字符集:一个字符在字符集中的序号。   字符集编码:该字符在计算机中是实际如何保存这个编号的。以下内容为转载:编码字符集——charset;   字符集编码——encoding无论历史上的UCS还是现如今的Unicode,两者指的都是编码字符集,而不是字符集编码。花费一点时间来理解好这件事,然后你会发现对所有网页的,系统的,编码标

2012-07-19 23:21:17 665

翻译 linux make使用的简单翻译

原文地址:http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html<!--@page {margin:2cm}p {margin-bottom:0.21cm}--><!--@page {margin:2cm}pre.cjk {font-family:

2012-07-19 22:33:36 639

原创 linux网络编程的一些基础知识--基础API相关

大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。IPV4套接字地址结构struct in_addr{ in_addr_t s_addr; //32bits};struct sockaddr_in{ uint8_t sin_len; //8bits; sa_family_t sin_family

2012-07-18 15:50:52 1100 1

原创 linux网络编程的一些基础知识--TCP协议相关

首先了解的TCP协议的报文格式,网上和书本上都有很多介绍,我们只要知道它包含了以下几个重要字段一:源端口号和目标端口号 (16bits),需要注意的是源和目标ip地址不在TCP报文中,而是在IP报文中二:序号和确认序号(32bits),序号用来标识从TCP端发送的数据字节流,表示在这个报文中的第几个数据字节;

2012-07-18 15:06:58 662

转载 传递实参时丢弃类型限定的原因

编译错误:   将'const xxx'作为'xxx'的'this'实参时丢弃了类型限定。   这样的错误一般是因为const限定符的问题。如:#include #include #include #include using namespace std;class A{public:    string m_str;    A(string str

2012-07-14 20:39:51 1855

原创 linux2.6下系统调用被信号中断时的响应

测试代码如下#include#include#include#includestatic void sigfunc(int signo){ if(signo == SIGUSR1) { printf("receive sigusr1\n"); }}int main(){ char str[10]; if(signal(SIGUSR1, sigfunc)

2012-07-09 20:22:26 1929

原创 不同长度的字符串数组排序

#include#include#includeint myStrCmp(const void *lhs, const void *rhs){ const char *lc = *(char **)lhs;            //数组元素是char *,而qsort中第四个函数原型是int (*) (const void *, const void *),所以传进来的参数实际是指

2012-07-03 15:07:46 938

原创 STL源码剖析中 traits的使用

#include using std::cout;using std::endl;//归根到底就是使用了function template的参数推导机制(argument deduction)//traits函数 生成一个该类型的临时对象,然后返回该对象//而真正的调用函数根据临时对象的类型决定调用哪个函数,当然这些函数是重载的,只是根据类型不同调用不同的重载函数而已//////

2012-06-05 10:57:32 657

转载 placement new 在一块已分配内存上创建对象

placement new 是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下: void *operator new( size_t, void *p ) throw()  { return p; }首先我们区分下几个容易混淆的关键词:n

2012-05-16 16:15:38 453

原创 c++全局变量

编译单元每一个.cpp对应一个编译单元,当然包括其#include的头文件。头文件中应该只包含声明,对应的.cpp文件放定义: externtest1.h#ifndef AAA#define AAA//上面的声明有什么用?//若下面的函数fun()不为extern,则会在link阶段出错,显示main.obj中已经有了fun(),test.obj再重复就出错

2012-05-03 22:55:01 1044

转载 ubuntu下安装chrome

玩了一个星期的Fedora,很多问题搞不定,还是回到Ubuntu了。 今天又重装了系统,然后安装Google-Chrome,出错:代码:yaowei@yaowei-desktop:/tmp$ sudo dpkg -i google-chrome-stable_current_i386.deb(正在读取数据库 ... 系统当前共安装有 126356 个文件和目录。)正

2012-04-26 21:30:34 7141

原创 关于linux下标准读入read和fgets和scanf的区别

测试代码如下#include "../tcpiplib.h"int main(int argc, char **argv){ssize_t n; size_t len; char buf[10]; //memset(buf, 0, sizeof(buf)); n = 8; len = read(fileno(stdin), buf, n); write(fileno(

2012-04-23 14:34:54 5743

原创 不同系统下的换行符

\n = CR (Carriage Return) // Used as a new line character in Unix\r = LF (Line Feed) // Used as a new line character in Mac OS\n\r = CR + LF // Used as

2012-04-21 21:46:59 617

原创 一点细节 关于linux下tcp断开连接时的情况

如果客户端先断开连接,server端再断开,那么server端占用的端口号立马可以用。但是客户端未断开情况下,server自行关闭,那么占用的端口将进入TIME_WAIT状态而暂时不可使用。因为主动断开那边会出现TIME_WAIT,而被动断开则不会吗echoserv.c#include "mytcplib.h"static void servecho(int c

2012-04-15 10:21:20 2424

原创 gcc 与 g++的不同点 搞不懂

一段代码如下:void *buff;buff = malloc(len);snprinf((char *)buff, len, "Num is : %d", len);mq_send(mqd, buff, len, prio);g++使用错误如下yunlong@ubuntu:~/code/mq$ g++ -o mqsend mqsend.c -lrtmqs

2012-04-10 10:42:48 1362

转载 静态库与动态库

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。  静态库和动态库的区别1. 静态函数库     这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因

2012-03-26 10:46:55 625

转载 同一进程中的线程究竟共享哪些资源

线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。     进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:  1.线程ID  每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标   识线程。

2012-03-25 15:27:27 857

转载 ubuntu jdk 安装与配置

折腾了许久的JDK7,今天终于安心的在机子落户了,现在来总结一下安装的技巧:1.要安装JDK7,当然是要有JDK的二进制文件拉。。这个简单,直接在ORACLE的官网中下载就可以拉http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlPS:要注意系统版本的选择,我

2012-03-22 15:49:21 469

原创 ubuntu 下iNodeClient的安装

解压,运行install.sh后,可能会打不开,使用./iNodeClient打开会发现是/usr/lib/libtiff.so.3这个文件打不开,到/usr/lib ll libtiff.so.3后发现这个文件其实是个软连接,指向一个不存在到文件,而真正的文件在/usr/lib/i386-linux-gnu/下,只要敲入以下命令,在/usr/lib下sudo ln -sf i386-li

2012-03-21 18:05:30 1530

原创 char * diff in c & c++

same code as belowchar *p;p = "123";p = "234";on my machine , it can be compiled with gcc, but failed with g++;I don't know why it works in gcc.. why the *p can change its value;

2012-03-05 16:13:39 786 1

原创 sicily 1159

#include#includeusing namespace std;const int LEN = 101;class BigInteger{public: BigInteger(); BigInteger operator + (BigInteger& rhs);private: char x[LEN + 1];friend istream& operator

2011-12-22 22:11:28 427

原创 MFC中的内存对齐设置

有2个方法:1 。#pragma pack(n)      n代表指定几个字节对齐2。project  -> settings -》 C/C++  category -- Code Generation  -- struct member alignment  。。默认是

2011-08-11 13:46:29 1244

原创 在MFC中使用CRichEdit控件

在CXXXAPP::InitInstance(){::AfxInitRichEdit();//before the Dialog Class CreateCXXXXDlg dlg}这样就可以了,不是在DlgClass的Init函数中

2011-08-03 17:45:14 862

TCPIP编程(Effective+TCPIP+Programming)

TCPIP编程(Effective+TCPIP+Programming).rar

2011-11-27

VB 简单的课程管理程序

很简单的一个课程管理程序,vb+access写的。 管理员账号密码:admin 123456 或自己到access文件中添加

2011-04-19

Google数学之美.pdf

Google数学之美 比较不错的。。主要讲的一些关于数学方面对软件开发的帮助

2011-03-19

空空如也

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

TA关注的人

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