- 博客(25)
- 收藏
- 关注
转载 汉字编码问题及用C程序实现将GB2312的6763个汉字按输出
<br /> <br /> 由于常常要和汉字处理打交道,因此,我常常受到汉字编码问题的困扰。在不断的打击与坚持中,也积累了一点汉字编码方面的经验,想和大家一起分享。<br />一、汉字编码的种类<br /> 汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5。<br /> 1、GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。它是一个简化字的编码规范,当然也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉
2010-10-19 11:18:00
4070
转载 fuse 开源代码学习心得
<br /><br />一,相关的理论知识准备<br /> 1,Linux Vfs的基本概念及相关知识,比较重要的如Linux文件系统的Vfs结构、Supper超级块、inode索引节点、<br /> dentry目录项,可学习参考"./docs"目录下从互联网上搜集到的相关资料文档<br /> 2, Fuse用户空间文件系统的基本概念和相关知识,比较重要的是要弄清楚什么是用户空间系统,它与传统的文<br /> 件系统有什么不同?其优点又在哪里?<br /> 3,Linux驱动开发的相关的相关知
2010-10-18 11:50:00
1323
原创 "explicit" 解析
explicit的意图是指明一个函数的调用必须是显式的,副作用才是禁止隐式的类型转化。一般用于防止单参数的构造函数的隐式转化。
2010-10-15 16:27:00
487
转载 解析“extern”
<br /><br />1、 声明外部变量<br />现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是<br />互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件:<br />//A.cpp<br />int i;<br /> <br />void main()<br />{<br />}<br /> <br />//B.cpp<br />int i;<br /> <br />
2010-10-15 14:26:00
405
原创 C++中要注意的18点(注意malloc/new)
一、#include “filename.h”和#include 的区别二、头文件的作用 加强安全检测 三、* , &修饰符的位置 ...十四、关于malloc/free 和new /delete....
2010-10-14 11:30:00
1184
转载 同步、异步、阻塞、非阻塞 I/O 及 异步I/O实现
<br />同步、异步、阻塞、非阻塞 I/O<br /> <br />第一部分来自:<br />http://blog.csdn.net/historyasamirror/archive/2010/07/31/5778378.aspx<br /> <br />Stevens在文章中一共比较了五种IO Model:<br /> blocking IO<br /> nonblocking IO<br /> IO multiplexing<br /> signal driven IO<br
2010-10-11 11:03:00
2708
转载 x86、i386、i486、i586、i686
一、x86与i386、i486、i586、i686等 x86或80x86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称。 该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在 新一代处理器使用可注册的名称,如Pentium。现时Intel把x86-32称为IA-32,全名为Intel Archite
2010-10-08 18:01:00
2403
转载 linux内核中管理TCP侦听队列长度参数:somaxconn
在linux中,/proc/sys/net/core/somaxconn这个参数, 看下其解析: 对于一个TCP连接,Server与Client需要通过三次握手来建立网络连接.当三次握手成功后, 我们可以看到端口的状态由LISTEN转变为ESTABLISHED,接着这条链路上就可以开始传送数据了. 每一个处于监听(Listen)状态的端口,都有自己的监听队列.监听队列的长度,与如下两方面有关: - somaxconn参数. - 使用该端口的程序中listen()函数. 1. 关于somax
2010-09-29 16:59:00
7539
原创 Linux关机与重启命令详解
Linux下的关机与重启的命令有多种,每种方式略有些不同,除非有特别紧急的情况发生,否则不要通过直接关闭电源来关机,这可能会导致数据丢失。 1. shutdown:妥善的停机方式 shutdown 是关机或重启系统最安全的方式。 shutdown可以在指定时间关机(定时关机),也可以让shutdown 在开始关闭系统之前等待一段时间,在等待过程中,shutdown 以越来越短的时间间隔发送一些消息给已登录的用户,警告用户,系统将要关闭,可以让用户在系统关闭之前做好相应的准备工作,防止发生数据丢失。
2010-09-22 03:01:00
3207
转载 epoll
<br />epoll的优点支持一个进程打开大数目的socket描述符(FD)<br />select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显然太少了。这时候你一是可以选择修改这个宏然后重新编译内核,不过资料也同时指出这样会带来网络效率的下降,二是可以选择多进程的解决方案(传统的Apache方案),不过虽然linux上面创建进程的代价比较小,但仍旧是不可忽视的,加上进程间数据同步远比
2010-09-10 14:47:00
449
原创 HTML 4.01 快速参考
HTML Basic Document<html><br /><head><br /><title>Document name goes here</title><br /></head><br /><body><br />Visible text goes here<br /></body><br /></html>Text Elements<p>This is a paragraph</p><br /><br> (line break)<br /><hr> (hori
2010-08-19 14:43:00
432
原创 volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: <br /> 1). 并行设备的硬件寄存器(如:状态寄存器) <br /> 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) <br /> 3). 多线程应用中被几个任
2010-08-03 10:04:00
331
转载 网络编程之同步,阻塞,异步,非阻塞
<br />同步:函数没有执行完不返回,线程被挂起 <br />阻塞:没有收完数据函数不返回,线程也被挂起<br />异步:函数立即返回,通过事件或是信号通知调用者<br />非阻塞:函数立即返回,通过select通知调用者<br />这样看来异步和非阻塞有什么区别呢?<br />异步=非阻塞?<br />同步是在操作系统层面上,阻塞是在套接字上?<br />Reactor是同步 Proactor是异步?<br />回答:<br />同步、异步、阻塞和非阻塞的概念<br /> 在进行网络编程时,我们常常见
2010-07-28 16:58:00
379
转载 apt安装和卸载软件
<br /> 查找软件<br />命令: apt-cache search keyword<br />查询软件状态<br />命令: apt-cache policy softname<br />引用: http://www.zishu.cn/blogview.asp?logID=684<br />安装软件<br />命令: apt-get install softname1 softname2 softname3……<br />卸载软件<br />
2010-07-28 11:33:00
740
转载 ASC码
ASCII码介绍<br /> 目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类
2010-07-27 14:37:00
2469
转载 缓冲区溢出原理
<br />在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。我在这里演示一下堆栈溢出的原理。 <br /><br />首先,介绍一下,与堆栈有关的一些概念:动态内存有两种,堆栈(stack),堆
2010-07-27 09:57:00
415
转载 解析#pragma指令
<br /><br /><br />在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 <br />其格式一般为: #Pragma Para <br />其中Para 为参数,下面来看一些常用的参数。 <br />(1)message 参
2010-07-27 09:50:00
339
转载 C语言之typedef的问题
一篇很好的文章,而且绝对适合于新手,我也是新手,所以我更明白新手需要什么的文章,如果你认真学过C语言的基础,那么这篇文章绝对能看懂,而且获益匪浅。还有什么其他的好文章,也希望大家推荐一下。1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什
2010-07-27 09:44:00
495
转载 const和指针
<br />1·非常量数据的非常量指针 <br />定义:int *ptr; <br />举例说明: <br />#include <stdio.h> <br /><br />//非常量数据的非常量指针指向的内存地址和存储的内容都可以改变! <br />int main() <br />{ <br />int a = 100; <br />int b = 200; <br />int *ptr = &a ; <br /><br />*ptr = b; //合法 <br
2010-07-27 09:42:00
361
转载 c语言中static 用法总结
<br />一、c程序存储空间布局<br />C程序一直由下列部分组成:<br /> 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;<br /> 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。<br /> 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。<br /> 4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保
2010-07-27 09:39:00
415
转载 c语言中restrict和const的区别
'Restrict' Pointers One of the new features in the recently approved C standard C99, is the restrict pointer qualifier. This qualifier can be applied to a data pointer to indicate that, during the scope of that pointer declaration, all data accessed thro
2010-07-27 09:37:00
1275
转载 alias——别名
<br /> Linux用户经常会使用到Shell,也经常会和控制台打交道。但是这种CLI界面很难被已经习惯使用MSWindows的用户所接受,尤其是命令。Linux常用的Bash命令有一百多个,虽然一般情况下命令都非常简短,不过也有很多时候需要大量的是用参数,这样,对很多初学者来说,背命令变成为最头疼的事情,这也是很多Linux初学者望而生畏。在这里,给大家说一个小技巧,一个可以使大家对控制台的操作更得心应手的技巧——alias(别名)。<br /><br /> 在说这些之前,首先现说
2010-06-26 00:40:00
551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人