自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (3)
  • 收藏
  • 关注

原创 关于华为一道面试题 ( ++a )和( a++ )

昨天偶尔在网上看到一道华为面试题,觉得有点无语,这么NB的公司也出这种没有意义的题目,唉~~~话不多说,贴上代码:     上面还有我自己的解释:/* 这个例子主要是考虑到a++和++a的存储问题; 我们知道,对于a++是先将a给表达式再++; 那么这就是需要一个tmp空间来保存++之前 的a!!!但是对于++a是不需要的,因为先 执行++,那么就是直接改a空间内容就好了

2012-03-30 12:29:41 4798 7

原创 printf 缓冲区问题

昨天在做Linux实验的时候,后面的同学发现一个很差异的现象!废话不说,先贴代码!            就是简单的fork小程序,简化之后的代码如下:#include #include #include #include int main( int argc, char ** argv ){ pid_t pid; int ret;

2012-03-23 06:55:04 8184 4

原创 linux 网络编程:epoll 的实例

在前面已经经过了PPC、TPC、select之类( TPC就是使用进程处理data,TPC就是使用线程处理 ),前面两个的缺点大家应该都是知道的是吧,对于select( 其实poll和他差不多 ),缺点是能同时连接的fd是在是不多,在linux中一般是1024/2048,对于很大的服务器来说是不够的!当然我们可以自己修改其值!但是效率上就会下降!       对于改进poll的epoll来说:

2012-03-22 15:39:04 16321

原创 UNIX domain ( UNIX 域协议 ) 实例

一般在我们自己的主机上通信的时候,前面也讲到过可以使用pipe,fifo,msg,共享内存之类,如果你想使用套接字的话,当然TCP/IP的套接字也是可以的,只要指定server的IP = 127.0.0.1 或者你的当前主机的实际接入网络的IP也是可以的!但是相对与此处的UNIX domain来说,在效率上可能会低一点点、、、       UNIX domain的实际操作和前面的TCP/IP中

2012-03-22 06:45:40 2543

原创 C语言中的 sizeof 问题

今天有同学问一串代码,不知道为什么是那样的输出,话不多说,先看代码:#include #define NUM (sizeof(arr) / sizeof(arr[0]))int arr[] = { 1, 2, 3, 4, 5, 6, 7 };int main(){ int i; for( i = -1; i <= ( NUM - 2 ); i++)

2012-03-21 14:10:05 1636 1

原创 Lua 基础

请看链接:Lua 编程

2012-03-21 09:50:07 1003

原创 Lua 入门( 一 )

接触 Lua 是由于网易的梦幻和魔兽争霸两款游戏,这两款都是我个人比较喜欢的游戏,几经波折,发现他们使用的动态脚本是 Lua;很多人认为 Python 是很好的一门脚本语言,不错,但是我个人认为还是 Lua 比较好! 大家注意 Lua的读音:---> 鲁啊     第一次讲讲简单的Lua 知识:    首先大家需要下载一个 Lua 的解释器,Lua.exe 以及 Luac.exe以

2012-03-21 09:47:57 1881

原创 windows 编程第一篇

1.    理解VC工程内幕1》         dsw 文件是级别最高的类型,即workplace 文件2》         dsp 文件是project 文件,每个不同的工程有自己的dsp文件,在workplace 中统一管理。3》         opt 文件 :计算机配置文件,所以,每个计算机之间是不可以共享的哦。4》         clw文件 用来存放应用程序中用到的类

2012-03-21 07:03:08 693

原创 令人无语的 windows 编程 error LNK 2001 错误

VC++时经常会遇到链接错误LNK2001:常见的有 解决外部符号错误:_main,_WinMain@16,__beginthreadex -!t'my`yK主要是在创建 MFC 的程序时,如果没有新建 MFC 的工程,而是手动连接时,会出现好多错误,会很无语的: error LNK2001错误1.libcmtd.lib(crt0.obj) : error LNK200

2012-03-21 07:02:27 811

原创 system 可以调用的 DOS 函数 总结

system 函数 是可以调用一些DOS命令,比如system("cls");//清屏, 等于在DOS上使用cls命令下面列出常用的DOS命令,都可以用system函数调用:ASSOC   显示或修改文件扩展名关联。AT      计划在计算机上运行的命令和程序。ATTRIB   显示或更改文件属性。BREAK   设置或清除扩展式 CTRL+C 检查。CA

2012-03-21 07:01:13 863

原创 面试题: 有81个选手,9个赛道,要求选出前4名。需要多少场?

无聊、中午睡不着,随便看啊可能网页,面试题一道,给出自己的解答,希望你们的!答案:11足够分析:我们作此题的前提是所有选手的水平都必须是稳定的哦,不然是没有可以比较性的!所以没有偶然性!>: 首先分成9组,每组9人跑一次,那么就是9场,那么我们每组只取4个人( 你懂的~ )>: 然后将9组的第一名跑一次,排处前4名的组!那么需要1场>: 现在有人: 第一名组:1

2012-03-21 06:59:47 1375 2

原创 Linux 下安装飞信(openFetion) / 源码安装

关于在Linux下安装 openfetion (源码安装)        首先给一个下载地址: http://www.linux99.com/down/1/501.html        理想状态下:./configure                         make                         sudo make install 就可以了!

2012-03-21 06:59:08 1722

原创 交换两个变量的值( 不可以使用中间变量 )

不允许任何中间变量来交换两个变量的值:例如num1=5,num2=6    其实这一题也是很简单的:提供两种方法:        1. 使用普通运算       num1 +=num2;       //!保留2个数的和       num2 = num1 - num2; //! num2此时的值是之前num1的值        num1= num1 - num2; //!

2012-03-21 06:58:30 1598 4

原创 ACM再来一题: 一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?

关于此题:看到此题,我,们显然不会害怕,因为在怎么不会,最简单的穷举法总是可以的是吧!也就是说:令 x, y, z分别为1, 2,3步的数目,那么最多有n个一步即x for( int x =0; x ){     for( int y = 0; y)     {          for( int z = 0; z )          {

2012-03-21 06:57:50 4904 1

转载 一次谷歌面试趣事

一次谷歌面试趣事投递人 丕子 发布于 2011-04-11 07:22 评论(50) 有4966人阅读 原文链接 [收藏] « »  本文是从 A Google Interviewing Story 这篇文章翻译而来。  很多年前我进入硅谷人才市场,当时是想找一份高级工程师的职位。如果你有一段时间没有面试过,根据经验,有个非常有用的提醒你应该接受,就是:你往往会在前几次面试中的什么

2012-03-21 06:57:09 922 1

转载 [转载]美国公司10大“变态”面试题

原文地址:美国公司10大“变态”面试题作者:二胤  美国大企业多年前就以创新手法招揽人才,在面谈时问些无厘头的“脑筋急转弯”问题。据雅虎新闻网报道,美国经济眼下不景气,小公司也需要头脑灵光、反应快的人才,因此,美国企业面谈的问题与之前相比更加千奇百怪。   求职网站“玻璃门”(Glassdoor.com)近日整理了求职者的面谈记录,列出了2010年最搞怪的25个面谈问题。名列第一的

2012-03-21 06:56:34 4168

原创 微软十五道面试题( 自己的实现,求更有解~~~~ O(∩_∩)O~ )

1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。int num =MAXNUM;        //! 可否有优化?int temp;for( int i = 0; i {for ( int j = i + 1 ; j {  temp = fabs( a[i]   - a[j]  )  ;  num =  num

2012-03-21 06:56:02 1399

原创 数组题目:求更优解~~~

给定一个N个元素的整数,元素分别为A1,A2,A3....AN,将数组变为A1A3 解:刚刚开始我的想法是,需要把它们先排序,如:1 2 3 4 5 67...然后在进行处理,原理是:首尾保持不变,从第二位和倒数第二位开始交换,然后index(下标)每隔2处理( 即lowIndex += 2;highIndex -= 2),结束条件就是 lowIndex>=highIndex;这样其实是可

2012-03-21 06:55:14 768

原创 又来一题咯:求两个整数的之和,要求在函数体内不得使用+、-、×、÷、++、- -

呵呵!此题看到后开始感觉很无语,其实大家看到后我感觉都是会有一个想法:那就是,此题不要用四则运算,那么就是位运算,对!这是大家的思维不错,但是具体怎么做呢?呵呵~~~O(∩_∩)O~     首先,我们必须要转化为二进制分析是吧,这个是必须的哦!例如:(5 + 17)D == ( 101 +10001)B结果应该是10110吧!那么我们分析:对于二进制的加法而言,1 + 1 = 0, 1

2012-03-21 06:54:31 1183 2

原创 好玩的 1 + 2 + 3 + ... + n 求和问题

对于sum = 1+ 2 + 3 + ... + n 问题,我觉得任何一个学过C的人( 即使只会一点点点点点...)都会说  So Easy是吧,不过确实也是的,呵呵~但是如果仅仅是这样,那么就没有什么意思了是吧~ 好,现在来增加一些限制条件----->                要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句!

2012-03-21 06:53:49 1282

转载 位运算的应用和实例( 摘 )

位运算应用口诀清零取数要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。    2 "    3">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。    4">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。

2012-03-21 06:53:11 523

转载 给程序员玩的问题( 摘录 )

1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?   答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,

2012-03-21 06:52:35 774

原创 Linux 多线程编程( POSIX )( 六 )----->共享内存区

Attention:打开相关代码区1. 介绍     POSIX 共享内存和SYSTEMV的共享内存的框架是差不多的,细节有区别!    在前面的SYSTEM V的共享内存区我们已经知道共享内存区是最快的IPC形式!   例如在两个进程之间传输data,那么此方法将会是非常高效的!、      共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在

2012-03-21 06:50:01 2131 2

原创 Linux 多线程编程( POSIX )( 六 )----->代码区 ( 共享内存实例 )

注意:以下编译加上  -lrt例如:gcc  -o server  server.c  -lrt1.创建一个共享内存区的例子#include #include #include #include int main( int argc, char ** argv ){    intshm_id;       if( argc !=2 )

2012-03-21 06:48:01 1321

原创 Linux 多线程编程( POSIX )( 五 )----->条件变量

Attebtion:打开相关代码链接1.   条件变量:   条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到   某特殊情况发生为止。通常条件变量和互斥锁同时使用。      条件变量使我们可以睡眠等待某种条件出现。   条件变量是利用线程间共享的全局变量进行同步的机制,主要包括两个动作:   >: 一个线程等待"条件变量的条件成

2012-03-21 06:47:05 1156

原创 Linux 多线程编程( POSIX )( 五 )----->代码区 ( 条件变量实例 )

1.条件变量的基本作用//!> 条件变量的基本作用#include #include #include //!> 注意此处为了方便就使用静态变量吧pthread_mutex_t       mutex =PTHREAD_MUTEX_INITIALIZER;                  //!> 初始化互斥锁pthread_cond_t

2012-03-21 06:45:38 1402

原创 Linux 多线程编程( POSIX )( 四 )------>互斥量

Attention: 打开相关代码链接1.   互斥锁:   说白了就是可以是线程之间或者进程之间互斥访问共享资源!       函数:      pthread_mutex_init      初始化一个互斥量      pthread_mutex_lock      给一个互斥量加锁      pthread_mutex_trylock   在锁

2012-03-21 06:44:45 1722

原创 Linux 多线程编程( POSIX )( 四 )------>代码区 ( 互斥量实例 )

加锁与不加锁的对比://!>不加锁测试//!>简单的售票小测试程序#include #include #include #include #include int        g_ticket =10;   //!> 票数目void * entrance_1( void * arg ){    while(g_ticket >

2012-03-21 06:42:51 1391

原创 Linux 多线程编程( POSIX )( 三 )------->信号灯

Attention:代码区链接一.       POSIX有名信号灯   所谓有名就是给一个类似句柄的key。      1.创建并初始化有名信号灯   函数:sem_open    #include    sem_t *sem_open( const char *name, int oflag, mode_t mode, unsigned intv

2012-03-21 06:41:46 1761

原创 Linux 多线程编程( POSIX )( 三 )------->代码区 ( 信号灯实例 )

1.sem_open与sem_close与sem_unlink与sem_getvalue#include #include #include #include #include int main( int argc, char ** argv ){sem_t * sem; int val;if( argc != 2 ){printf("请

2012-03-21 06:40:06 1643

原创 Linux 多线程编程( POSIX )( 二 )----->pthread_attr_t 线程属性

附加代码链接: 代码链接1.   线程属性:            使用pthread_attr_t类型表示,我们需要对此结构体进行初始化,             初始化后使用,使用后还要进行去除初始化!             pthread_attr_init:初始化             pthread_attr_destory:去除初始化

2012-03-20 12:14:52 1021

原创 Linux 多线程编程( POSIX )( 二 )----->代码区 ( pthread_attr_t 线程属性实例 )

1.detach实例://!> detach#include #include #include void * entrance( void * arg ){    int               get_attr_int;   pthread_attr_t       attr;   printf("子进程创建OK, ID ==  %d\n

2012-03-20 12:12:33 1371

原创 Linux 多线程编程( POSIX )( 一 )-----> 基础篇

ATTETION:附加代码地址:  点击打开链接 http://blog.csdn.net/shanshanpt/article/details/73727081.    所谓线程就是“一个进程内部的一个控制序列”。也就是一个进程内部的并行的基础!2.    Linux进程可以看成只有一个控制线程:      一个进程在同一时刻只做一件事情。有了多个控制

2012-03-20 12:11:01 1061

原创 Linux 多线程编程( POSIX )( 一 ) ----> 代码区

1.基础线程创建:#include #include #include void * print_id( void * arg)      //!>这是线程的入口函数                        {    printf("TheCurrent process is: %d \n",getpid());

2012-03-20 12:09:41 1316

原创 Linux 进程通信(System V) 第五节 ------>共享内存区

一:简介前面已经学过:pipe,FIFO,msg queue, 今天要学的是“共享内存区”1.共享内存区是进程通信中最快的方式,而且传递的信息量是很大的!2.是通过内存区间映射到进程空间来实现的!因此这种进程间的通信不再涉及到内核!(即进程不是通过执行任何的进入内核的系统调用来传递数据的。这样内核就必须建立允许各个进程之间的共享内存区的映射关系,然后一直管理该内存区!同时也

2012-03-20 12:07:56 1150

原创 Linux 进程通信(System V) 第四节 ------>信号量

1.并不是IPC机制,它是一种提供不同进程之间或者是同一个进程的不同的线程之间的同步!2.类型:      .二元信号:值为0或者1,1说明有一个可以资源,0说明此时正好再用,其他进程等待                  相当于是 P 和 V 问题...                        .计数信号量:值在0和一个大于0的值之间,一般是可用的资源数量

2012-03-20 12:05:00 739

原创 Linux 进程通信(System V) 第三节 ------> msg queue 消息队列

一.简介   目前主要有两种类型的消息队列:POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用。考虑到程序的可移植性,新开发的应用程序应尽量使用POSIX消息队列。   消息队列是内核创建的一个数据结构,是有标识的!   对于有读写权限的进程来说哦,所以可以通过对共享的消息进程的读写实现不同进程之间的通信!   关于消息队列的数据结构:

2012-03-20 12:03:55 1941

原创 Linux 进程通信(System V) 第二节 ------> FIFO

一.一些简单理解:我们知道管道是没有标志的,所以只能是在同一个进程组中进行通信,不同的祖先产生的进程之间是不可以的!!所以此处引入FIFO机制同样也只能是单流的!不同的是FIFO是有标志的!每个FIFO都有一个路径名与之相关!FIFO也称为 “有名管道”#include #include int mkfifo( const char* pathname, m

2012-03-20 12:00:58 1329

原创 Linux 进程通信(System V) 第一节 ------> 管道 pipe

简介:一.#include int pipe(int fd[2]);   //!>注意参数是fd[0]是读的文件描述符,fd[1]是用来写的文件描述符一般用于 “父子进程” 之间的通信!因为pipe是没有标志的,所以只能在一个进程集中运作!“单向pipe”:      父进程创建好 pipe 后,同时通过 fork() 创建一个子进程,然后父进程就可以关

2012-03-20 12:00:00 1334

转载 Linux 僵尸进程

怎样产生僵尸进程的:  一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用 exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。  在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅

2012-03-20 11:59:22 920

ir_tree源代码解决

ir_tree源代码解决 C语言处理 ,实验代码

2013-12-08

ir_tree树源码

ir树代码,这个只是一个实验代码,用在实际的大数据中是有问题的~有待优化~

2013-12-08

ir_tree树源代码

ir树代码,这个只是一个实验代码,用在实际的大数据中是有问题的~有待优化~

2013-12-08

空空如也

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

TA关注的人

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