自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(26)
  • 收藏
  • 关注

原创 堆排序下标从零开始

下标从0开始好像也影响不大,就是把树的cengc

2014-06-22 10:45:07 1193

转载 应用 Valgrind 发现 Linux 程序的内存问题

Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构

2014-06-09 17:35:15 360

原创 设计模式备忘

1. 适配器模式不兼容结构的协调——适配器模式(一)

2014-06-05 23:51:27 392

转载 关于linux重定向的解析

关于linux重定向的解析apue书中 p64程序清单3.4有4种调用方式及结果---------------------------------------------./a.out 0 read only./a.out 1 > temp.foowrite only./a.out 2 2>>temp.foowrite only, append./a.out 5

2014-05-29 21:34:45 627

转载 printf()用%f输出double型,scanf用%lf

问:有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢?答:printf的%f说明符的确既可以输出float型又可以输出double型。 根据"默认参数提升"规则(在printf这样的函数的可变参数列表中 ,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。参见

2014-05-28 19:19:24 1245

转载 信号之signal函数

UNIX系统的信号机制最简单的接口是signal函数。signal函数的功能:为指定的信号安装一个新的信号处理函数。#include void (*signal(int signo, void (*func)(int)))(int);复杂原型分开看:void (* signal( int signo, void (*func)(int) )  )(int);

2014-05-27 20:50:54 954

转载 Linux /etc/passwd /etc/shadow

/etc/passwd 存放账户信息root:x:0:0:root:/root:/bin/bashjianing:x:1011:100::/home/jianing:/bin/bashusername:password:uid:gid:allname:homedir:shell用户名:密码:用户ID:组ID:用户全名:主目录:登录shell密码:存在

2014-05-27 20:45:31 666

转载 vim粘贴自动缩进

有时候从 web 上复制一段代码要粘贴到 vim 中,因为启用了 set smartindent 选项,粘贴后的缩进完全乱套。可用paste选项禁用或启用smartindent选项。虽然前后麻烦些,至少问题解决了,smartindent还是不能缺的。在粘贴文本到vim前,先::set paste完了再恢复::set paste!

2014-05-27 10:02:35 834

原创 vim 如何对块进行缩进

1. ESC2. shift + v 进入visual line模式。3. j, k 键选择范围4. 键入>(>表示往you)

2014-05-20 09:21:53 985

转载 分析df和du的区别

Linux、Unix-Like平台的用户都可能会发现,du与df的查询结果会不一致。最常见的情况就是,df显示的已使用磁盘占用率比du统计出来的结果要大很多。  下面说下两者结果不同的原因,主要是由于两者计算结果的方式不同。  先来看看两者是如何计算的  df命令:  df是从文件系统考虑,通过文件系统中未分配的空间来确定文件系统中已分配空间的大小。例如:如果一个文

2014-05-19 09:10:23 860

转载 Linux nohup命令

我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。nohup/setsid/&场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保

2014-05-18 16:16:55 514

转载 Grep学习笔记

Grep学习笔记整理:Jims of 肥肥世家yjnet@21cn.com>Copyright © 2004 本文遵从GPL协议,欢迎转载、修改、散布。第一次发布时间:2004年7月16日Table of Contents1. grep简介2. grep正则表达式元字符集(基本集)3. 用于eg

2014-05-18 11:22:02 386

转载 堆的节点总数n和叶结点数目的关系 (CLRS习题 6.1-7)

来自算法导论 CLRS的一个习题。Chapter 6 Heap Sort.  Exercise6.1-7 Show that, with the array representationfor storing an n-element heap, the leaves are the nodes indexed by ⌊n/2⌋ + 1, ⌊n/2⌋ + 2, . . . , n.

2014-05-17 17:16:16 1358

转载 PuTTY配色方案

最近用腻了putty默认的配色方案,所以打算换一下配色。使用的是修改注册表的方法。1.打开注册表:运行——》regedit2.找到对应的注册表文件,并导出:注册表地址 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ *可以看到putty的配置信息其实是存在注册表中,一个Setting存一个

2014-05-15 23:32:44 1176

转载 alloca 函数

The answer is right there in the man page (at least on Linux):RETURN VALUE The alloca() function returns a pointer to the beginning of the allocated space. If the allocation causes stack overf

2014-05-12 21:26:17 1286

转载 getsockname和getpeername的用法及实例

getsockname和getpeername#include int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);int getpeername(int sockfd, struct sockaddr *peeraddr, socklen_t *addrlen);返回:0—OK

2014-05-12 20:34:55 849

转载 vim 设置tab 空格

为了vim更好的支持python写代码,修改tab默认4个空格有两种设置方法:1. vim /etc/vimrc 1set ts=42set sw=42. vim /etc/vimrc 1set 

2014-05-10 10:26:29 525

转载 Ubuntu下网络代理设置

新立得软件管理器这种图形化的代理设置很明了,这里介绍下终端命令行的网络代理设置,这样大家就可以通过代理进行apt-get了。 方法一:  如果只是想临时使用http代理,可以在使用apt-get之前于终端下输入:export http_proxy="http://用户名:密码@代理IP:代理端口" 方法二:(方法一的持久化)  如果希望apt-get

2014-05-10 10:19:37 712

原创 Linux 终端 进度条实现

#include #include int main(){ char x[300]; memset(x,0,300); struct winsize ws; ioctl(0, TIOCGWINSZ, &ws); // 获取终端窗口大小 int total = ws.ws_col-10; for(int i=0;i<=tot

2014-05-09 21:45:19 1865

转载 HTTP协议 断点续传

要实现断点续传的功能,通常都需要客户端记录下当前的下载进度,并在需要续传的时候通知服务端本次需要下载的内容片段。HTTP1.1协议(RFC2616)中定义了断点续传相关的HTTP头 Range和Content-Range字段,一个最简单的断点续传实现大概如下:   1.客户端下载一个1024K的文件,已经下载了其中512K   2. 网络中断,客户端请求续传,因此需要在HTTP头中

2014-05-09 20:35:42 1843

转载 linux根目录下各目录的功能

Linux文件系统采用分层的树形目录结构.即在一个根目录(通常用"/"表示),含有多个子目录或文件;子目录下又含有更下级的子目录或文件信息,一层一层地延伸.构成一棵倒置的树. 下面就简单来看看Linux根目录的子目录都用来存放什么属性的目录或文件吧!/bin:存入普通用户可以使用的命令文件.目录/usr/bin 也可用来贮存用户命令。/sbin:  一般存放非普

2014-05-08 23:53:20 824

转载 TCP 三次握手 四次挥手

TCP的段格式如下图所示(该图出自[TCPIP])。图 36.12. TCP段格式和UDP协议一样也有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小稍后详细解释。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。URG、

2014-05-08 22:31:11 548

转载 动态链接库之延迟绑定探究

动态链接库的优点比较明显,主要集中在节省内存,简化对程序的管理等,对此感兴趣的看官可以去阅读经典的教材 Linker and Loader,国内也有一本经典的教材,俞甲子 石凡 潘爱民编著的程序员的自我修养,讲的也非常好。    延迟绑定PLT,我迷惑过很久,终于让我遇到一篇写的非常棒的博文,这就是 Position Indepentent code in share li

2014-05-07 23:55:16 817

转载 select函数的第一个参数为什么是最大描述符加1呢

ChinaUnix.net标题: 一直不明白,select函数的第一个参数为什么是最大描述符加1呢? [打印本页]作者: iw1210    时间: 2013-01-23 18:51     标题: 一直不明白,select函数的第一个参数为什么是最大描述符加1呢?本帖最后由 iw1210 于 2013-01-23 18:51 编辑 一直不明白,select函数的第一个

2014-05-07 22:11:05 6016

转载 Unix Socket编程--I/O复用之select模型

一。之前写过一篇关于并发服务器的处理机制,其内容是这样的:考虑到有多个客户连接的情况下,服务器在收到每一个新的客户的连接请求时,都会创建一个新的连接套接字,而原来的监听套接字将保留以继续监听后续的连接请求;如果服务器不能立刻接受后来的连接,他们将会被添加到队列中等待被处理。当服务器调用fork()来为自己创建拷贝时,打开的连接套接字将被新的子进程所继承。新的子进程将和该客户进行连接

2014-05-07 21:38:51 525

转载 linux中对EINTR错误的处理

慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证。EINTR错误的产生:当阻塞于某个慢系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能返回一个EINTR错误。例如:在socket服

2014-05-07 20:20:37 516

空空如也

空空如也

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

TA关注的人

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