- 博客(49)
- 资源 (4)
- 收藏
- 关注
翻译 Block Bindings
Block Bindings一般来讲,变量的声明方式在 Javascript 的变成中是一个棘手的部分(tricky part)。在大部分 C-Based 语言中,变量是在声明的地方创建的。但是在 Javascript 中并不是如此。 你的变量创建的地方依赖于你是怎样声明这些变量的,在 ECMAScript 6 中提供了选择让你能够更容易的控制这些变量的作用范围。这一章节将讲述为什么传统的 var
2015-12-30 00:20:34
689
翻译 Understanding ECMAScript 6
原文内容列表简介 浏览器与 Node.js 兼容性这本书的受众概述帮助与支持Block Bindings var 声明与提升(Hoisting)块级声明循环中的块级绑定全局块级绑定-
2015-12-29 21:27:38
840
原创 一段小代码
今天在微博上看到一段小程序,博主问会不会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
759
原创 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
961
原创 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
629
原创 标准输入,标准输出和标准出错的缓冲
APUE第5章已经说得很清楚了,这里就记录一下。标准I/O提供3种缓冲类型:(1)全缓冲:填满标准I/O缓冲区后才进行实际的I/O操作。(2)行缓冲:当在输入和输出中遇到换行符('\n')时,才执行实际的I/O操作。 两个限制: (a)缓冲区满了,好理解。 (b)任何时候遇到要求从一个不带缓冲的流,或者一个行缓冲的流(它要
2012-09-18 23:21:16
1401
转载 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
3150
原创 一个仿照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
1767
原创 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
1486
原创 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
1865
原创 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
2010
原创 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
1482
转载 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
801
原创 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
3022
转载 变长数组
#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
1035
原创 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
678
转载 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
612
转载 编码字符集与字符集编码的区别
我自己的理解: 编码字符集:一个字符在字符集中的序号。 字符集编码:该字符在计算机中是实际如何保存这个编号的。以下内容为转载:编码字符集——charset; 字符集编码——encoding无论历史上的UCS还是现如今的Unicode,两者指的都是编码字符集,而不是字符集编码。花费一点时间来理解好这件事,然后你会发现对所有网页的,系统的,编码标
2012-07-19 23:21:17
699
翻译 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
672
原创 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
1130
原创 linux网络编程的一些基础知识--TCP协议相关
首先了解的TCP协议的报文格式,网上和书本上都有很多介绍,我们只要知道它包含了以下几个重要字段一:源端口号和目标端口号 (16bits),需要注意的是源和目标ip地址不在TCP报文中,而是在IP报文中二:序号和确认序号(32bits),序号用来标识从TCP端发送的数据字节流,表示在这个报文中的第几个数据字节;
2012-07-18 15:06:58
689
转载 传递实参时丢弃类型限定的原因
编译错误: 将'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
1908
原创 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
1968
原创 不同长度的字符串数组排序
#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
966
原创 STL源码剖析中 traits的使用
#include using std::cout;using std::endl;//归根到底就是使用了function template的参数推导机制(argument deduction)//traits函数 生成一个该类型的临时对象,然后返回该对象//而真正的调用函数根据临时对象的类型决定调用哪个函数,当然这些函数是重载的,只是根据类型不同调用不同的重载函数而已//////
2012-06-05 10:57:32
685
转载 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
482
原创 c++全局变量
编译单元每一个.cpp对应一个编译单元,当然包括其#include的头文件。头文件中应该只包含声明,对应的.cpp文件放定义: externtest1.h#ifndef AAA#define AAA//上面的声明有什么用?//若下面的函数fun()不为extern,则会在link阶段出错,显示main.obj中已经有了fun(),test.obj再重复就出错
2012-05-03 22:55:01
1072
转载 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
7171
原创 关于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
5811
原创 不同系统下的换行符
\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
664
原创 一点细节 关于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
2468
原创 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
1393
转载 静态库与动态库
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因
2012-03-26 10:46:55
668
转载 同一进程中的线程究竟共享哪些资源
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标 识线程。
2012-03-25 15:27:27
893
转载 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
493
原创 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
1578
原创 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
820
原创 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
452
原创 MFC中的内存对齐设置
有2个方法:1 。#pragma pack(n) n代表指定几个字节对齐2。project -> settings -》 C/C++ category -- Code Generation -- struct member alignment 。。默认是
2011-08-11 13:46:29
1294
原创 在MFC中使用CRichEdit控件
在CXXXAPP::InitInstance(){::AfxInitRichEdit();//before the Dialog Class CreateCXXXXDlg dlg}这样就可以了,不是在DlgClass的Init函数中
2011-08-03 17:45:14
903
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人