自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (5)
  • 收藏
  • 关注

转载 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词.

首先,我们看到这个题目应该做一下计算,大概的计算,因为大家都清楚的知道1G的文件不可能用1M的内存空间处理。所以我们要按照1M的上线来计算,假设每个单词都为16个字节,那么1M的内存可以处理多少个单词呢? 1M = 1024 KB = 1024 * 1024 B 。然后1M / 16B = 2^16个单词,那么1G大概有多少个单词呢? 有2^26个单词,但是实际中远远不止这些,因为我们是按照最大单

2014-09-20 00:48:44 2081

转载 十道海量数据处理面试题

第一部分、十道海量数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多

2014-09-19 22:02:48 393

转载 strcpy函数的实现

大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是:

2014-09-19 21:49:35 457

转载 稳定排序和不稳定排序

这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。      首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的

2014-09-19 21:44:26 394

转载 Php操作文件

file_get_contents 读取整个文件内容

2014-08-12 00:34:01 435

转载 排序算法之归并排序

归并操作[编辑]归并操作(merge),也叫归并算法,指的是将两个已经排序的串行合并成一个串行的操作。归并排序算法依赖归并操作。算法描述[编辑]归并操作的过程如下:申请空间,使其大小为两个已经排序串行之和,该空间用来存放合并后的串行设定两个指针,最初位置分别为两个已经排序串行的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复

2014-08-10 21:25:47 449

转载 堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2014-08-10 17:06:15 361

原创 哈夫曼编码

定义哈夫曼树之前先说明几个与哈夫曼树有关的概念: 路径: 树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。 路径长度:路径上的分枝数目称作路径长度。 树的路径长度:从树根到每一个结点的路径长度之和。 结点的带权路径长度:在一棵树中,如果其结点上附带有一个权值,通常把该结点的路径长度与该结点上的权值         

2014-08-02 17:08:21 770

原创 Ubuntu12.04 不显示ibus

升级到Ubuntu 12.04 LTS后,有时候会出现输入法图标消失的现象,ctl+空格虽然能调出输入法,正常输入,但是没有图标总感觉怪怪的,搜了下方法,大致有两种,试了一种简单的,现把两种方法都记录下来,以防万一:方法一:在终端中输入:[我的解决方法是这个,第二个方法对我不好用]killall ibus-daemonibus-daemon -d方法二:在终端中输入

2014-08-02 15:14:45 403

原创 二叉树中,节点与边数的关系

节点0度、1度、2度节点数分别表示为n0,n1,n2,

2014-08-02 15:03:38 9846

转载 Linux内核编译与安装

Linux内核编译与安装Linux内核介绍Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。Linux内核的一大特点就是采用了整体式结构,有很多过程组成,每个过程都可以独立编译,其模块机制又湿得内核保持独立而又易于扩充。Linux发行版实在Linux内核的基础之上,与外带的应用软件

2013-08-26 20:17:34 619

转载 零拷贝技术研究与实现

零拷贝技术研究与实现作者:梁健(firstdot)E-MAIL:firstdot@163.com一.基本概念零拷贝(zero-copy)基本思想是:数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。实现零拷贝用到的最主要技术是DMA数据传输技术和内存区域映射技术。如图1所示,传统的网络数据报处理,需要经

2013-08-23 16:24:22 469

转载 向内核中添加源代码

需要向内核中添加源代码(.c)时,需要通过两个文件告知内核所添加文件的存在:Kconfig和Makefile。例如,我需要向"net\ipv4"目录中,添加"mydir"目录,并且添加源文件"myfile.c",那么修改Kconfig文件和Makefile文件的步骤如下:1. 添加 "net\ipv4\mydir\Kconfig" 文件,并且写入如下内容: 

2013-08-19 19:10:32 555

转载 在Linux内核源代码中添加printk函数

printk是内核打印函数,需要在Linux内核源代码中调用printk函数需要包含kernel.h内核入口函数start_kernel中添加了代码printk(KERN_NOTICE "I'm the printk in the kernel\n", linux_banner); 重现变异内核后。察看dmesg在dmesg开头处可以看到[    0.000000]

2013-08-19 16:53:17 1119

转载 Kernel base Series(3)-----hlist_nulls_head

分类:原文地址:Kernel base Series(3)-----hlist_nulls_head 作者:mtloveft声明:本文为原创#####请转贴时保留以下内容######作者:GTT本文档归属http://oldtown.cublog.cn/.转载请注明出处!请提出宝贵意见Mail:mtloveft@hotmail.comLinux

2013-05-17 17:20:45 1049

转载 getsockopt/setsockopt 函数说明

功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法: int setsockopt

2013-05-15 10:39:20 491

转载 getsockname与getpeername

getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址。int getsockname(int sockfd, struct sockaddr * localaddr, socken_t * addrlen);int getpeername(int sockfd, struct sockaddr * peeraddr, socken_t * ad

2013-05-15 10:24:37 480

转载 SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI

2011-09-13 21:08:15|  分类: Linux网络编程|字号 订阅在我们学习网络基础时,传输层的协议有TCP和UDP;在Linux网络编程中,我们使用socket API,实现网络通信。那么:        socket API 和 TCP 协议中各个状态是如何对应的呢?我们可以通过下图来看:

2013-05-15 01:04:48 1203 1

转载 file结构体和inode结构体

(1)struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct file的指针通常被命名为file或filp。如下所示:stru

2013-05-08 16:34:45 684

转载 socket和sock的一些分析

/* 1、每一个打开的文件、socket等等都用一个file数据结构代表,这样文件和socket就通过inode->u(union)中的各个成员来区别: struct inode { ..................... union { struct ext2_inode_info ext2_i; struct ext3_inode_info ext3_i; stru

2013-05-08 15:08:27 3739

转载 ubuntu环境下vstfpd安装与配置

安装vsftpd: vsftpd 是可在 Ubuntu中使用的 FTP 守护程序之一。它在安装、设置和维护方面十分方便。要安装 vsftpd 您可以使用下列命令: vsftpd - FTP 服务器配置 你可以编辑 vsftpd 配置文件,/etc/vsftpd.conf,来配置缺省设置。缺省状态下只允许匿名 FTP。如果您希望禁用该选项,您可以将下面这行:  a

2013-05-05 15:11:00 1043

转载 Unix或Linux中&、jobs、fg、bg等命令的使用方法

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的一.& 最经常被用到这个用在一个命令的最后,可以把这个命令放到后台执行二.ctrl + z可以将一个正在前台执行的命令放到后台,并且暂停三.jobs查看当前有多少在后台运行的命令四.fg将后台中的命令调至前台继续运行如果后台中有多个命令,可以

2013-04-27 16:17:43 510

转载 iperf网络测试工具的使用

公司最近测试一个产品, 是linux的VPN服务器,需要测试该VPN服务器的吞吐量性能,由于Avalanche与我们的VPN服务器不能完全兼容,又不允许我们对VPN服务器进行改动,所以只能借助其他的工具。找来找去,发现Iperf是个既简单又有点知名度的的工具,决定就用它了。Iperf是一个网络性能测试工具,主要应用于LINUX服务器下面。可以测量最大TCP和UDP带宽,具有多种参数和特性,可以记录

2013-04-27 14:49:54 1615

转载 ip 命令使用详解

ip1.作用ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。几乎所有的Linux发行版本都支持该命令。2.格式ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]3.主要参数OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开

2013-04-25 10:38:14 5076

转载 __define_initcall 作用(subsys_initcall 作用)

前言  宏定义__define_initcall(level,fn)对于内核的初始化很重要,他指示  编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序  放在一个section中。在内核初始化阶段,do_initcalls() 将按顺序从该  section中以函数指针的形式取出这些函数的起始地址,来依次完成相应  的初始化。由于内核某些部分的初始化需要依赖于其

2013-04-18 20:43:55 676 1

转载 ctags和vim

ctags和vimctags和vim- -                                    [/home/brimmer/src]$ ctags -R"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"tags"文件中包括这些对象的列表:l        用#define定义的宏l        枚举型变量的值l        函

2013-04-08 22:21:17 623

转载 sizeof 和strlen

1.函数类型  #include   size_t strlen(const char *s);  size_t sizeof()2.本质区别  本质上,strlen是函数,而sizeof是算符。strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,起长度是固定的,所以sizeof在编译时计算缓冲区的长度。sizeof后如果是类型必须

2013-04-05 14:54:19 406

转载 strftime的例子

我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_t strftime(     char *strDest,     size_t maxsize,     const char *format,     const struct tm *timeptr );我们可以根据format指向字符串中格式命令把timeptr中

2013-04-05 11:36:18 654

转载 socketpair的问题

今天跟人谈到socketpair的问题,晚上回来写了个程序验证下自己的猜测!     先说说我的理解:socketpair创建了一对无名的套接字描述符(只能在AF_UNIX域中使用),描述符存储于一个二元数组,eg. s[2] .这对套接字可以进行双工通信,每一个描述符既可以读也可以写。这个在同一个进程中也可以进行通信,向s[0]中写入,就可以从s[1]中读取(只能从s[1]中读取),也可以在

2013-04-04 21:31:35 686

转载 Linux-man page(Linux在线手册) 的简单使用

Linux-man page(Linux在线手册) 的简单使用其中man是manual的缩写必须要记得的代码号是1,5,8命令: man 7 man部分结果:The manual sections are traditionally defined as follows:              1 Commands

2013-04-04 19:57:49 720

转载 SO_BINDTODEVICE 套接口选项

这是一篇我看了以后感觉非常棒的文章. 实在忍不住要转载..SO_BINDTODEVICE 套接口选项2008-03-31 11:231. 起因事情的起因是我准备用两个CDMA modem来拓展点对点连接的带宽,并且希望藉此实现两个modem之间的负载均衡。但是不幸的是,联通公司的接入设备不支持Multilink-PPP。于是,

2012-12-04 09:50:35 854

7个Android应用程序源代码

7个非常好android开发的样例程序,不是非常简单,也不是太过复杂,开始时会很头疼,看过后会感觉收获很大

2012-02-13

Android开发提高十六技

本书含有16个例子 属于提高篇的内容 没有一定基础会比较头疼

2012-02-13

Android最佳学习路线

Android最佳学习路线,可以让你在开发的道路上,走得更快,行得更远,通过该最佳路线,你可以在学习时事半功倍

2012-02-11

深入浅出Android

Android入门的优秀图书,通过本图书可以快速入门,进入到Android开发的世界里,畅游Android开发的美妙之旅

2012-02-11

空空如也

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

TA关注的人

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