- 博客(39)
- 资源 (4)
- 收藏
- 关注
转载 斜杠“/” 反斜杠“\”
在Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"\",比如"C:\Windows\System"。 有时我们会看到这样的路径写法,"C:\\Windows\\System",也就是用两个反斜杠来分隔路径,这种写法在网络应用或编程中经常看到,事实上,上面这个路径可以用"C:/Windows/Syste
2015-11-02 17:59:40 642
原创 数据结构之队列
一 链式队列数据结构:两个指向节点的指针front, rear; 当链队为空时,front和rear都指向头节点,因此出队时,删除队尾节点时要注意!link_queue.h 1 typedef int type_t; 2 typedef enum {false, true} bool; 3 4 struct queue_nod
2015-10-12 16:19:25 445
原创 二叉树
1. 二叉树节点的创建(初始化)* * tree.c */#include #include "tree.h"struct tree_node *tree_node_create(data_t data){ struct tree_node *tmp = malloc(sizeof(*tmp)); tmp->data = data; tmp->left
2015-10-12 16:18:37 457
转载 win7 x64 若缺少msvcp71.dll,会造成不能上网,但网络连接正常!
在使用电脑的过程中,会遇到一些比较棘手的问题,比如某个系统文件丢失了,就会导致电脑给功能的失常。比如,当电脑中的msvcp71.dll、msvcr71.dll,就会不停的出现提示,而且导致部分软件功能失常,比如网络连接正常,却不能上网。
2014-11-06 20:50:37 2375
转载 点对点与端到端的区别
到点是网络层的,你传输层只认为我的数据是从a直接到e的,但实际不是这样的,打个比方,传输层好象领导,他发布命令:要干什么什么事,但真正干的不是他,真正干的是员工,也许领导认为很简单一句话就可以干好的事,在员工眼里却是难于登天,手续极其烦琐,所以传输层是发布命令的领导,他说的是命令,也就是最终的目的,所以他只看到最初的地址和最终的地址,既一个任务的两个端点,网络层就相当于员工,领导的任务我要一步一步
2014-06-18 08:21:53 627
转载 WEB点对点程序传输数据,是用HTTP协议还是TCP/IP协议?
WEB点对点程序传输数据,是用HTTP协议还是TCP/IP协议 Tcp/Ip协议和Http协议有什么区别,两个Web程序点对点传送数据,你会选择那一个?今天在网上看到这样一个面试题目,引发了一连串的查找资料,复习网络知识的事件…… 大家都知道,http是网络应用层协议,而TCP/IP属于网络传输层协议,两者层次不同,没有办法进行比较。但是,个人认为,这个题目
2014-06-18 07:20:22 4986
原创 【坑】你写的个Android helloworld要用多长时间?
用在android开发环境新建个工程即可!但,配置Android开发环境,特别是jar包
2014-04-30 18:53:32 678
原创 linux 打包,压缩命令【实践】
$tar -cvf /tmp/bak1.tar /home/username/Downloads $tar -zcvf /tmp/bak2.tar.gz /home/username/Downloads $tar -jcvf /tmp/bak3.tar.bz2 /home/username/Downloads
2014-03-25 01:19:52 566
原创 linux awk命令(文本分析工具)
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。例子:$echo hello world | awk '{print $2}'$echo hello,world | awk -F\, '{print $2}'$ech
2014-03-03 08:41:17 773
原创 如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令)
sed是一个很好的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作.(总:sed处理对象是文件,怎么处理?是以逐行处理,何种处理?替换,删除。。)sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -i∶直接修改读取的档案内容,而不是由萤幕输出。
2014-03-02 23:36:25 2412
原创 Linux shell的算术运算
Linux shell中所有的变量都是当作字符串来处理的!#!/bin/sh a=4b=3c=`expr $a + $b` echo $aecho $becho $cecho $a + $b // 此处不能不加空格,即$a+$b是错误的注:``,一条命令中嵌套另一条命令,expr是个命令echo `expr 3 + 4`结果:7
2014-03-02 23:04:13 619
转载 shell脚本
变量: 可以在任何时间通过简单的赋值来创建。 语法: - Linux 中的所有变量都被当作字符串引用变量: $符号用于引用一个变量的内容 variable1 = ${variable2}读入值给变量 在执行shell脚本时,shell还允许用户直接从键盘读入一个值给
2013-12-12 10:22:45 590
转载 构造函数与析构函数的起源
作为比C更先进的语言,C++提供了更好的机制来增强程序的安全性。C++编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表示错误已经不存在了,在“错误”的大家庭里,“语法错误 ”的地位只能算是小弟弟。级别高的错误通常隐藏得很深,就象狡猾的罪犯,想逮住他可不容易。根据经验,不少难以察觉的程序错误是由于变量没有被正确初始化或清除造
2013-12-04 18:16:16 520
转载 git使用总结
git目前是最流行的代码管理软件,包括Linux kernel源码和android源码都是由git来管理。git使用起来效率高,干净,生成的中间文件不会影响到代码,比起SVN有很大优势。目前在工作中也是用git来管理源码,这里简单梳理一下使用细节和命令。在ubuntu系统中安装gitsudo apt-get install git git-core建立统一的账户来管理git项目,这
2013-12-04 11:48:20 654
转载 linux下生成.so文件和.a文件
linux下生成.so文件和.a文件test.h1 #ifndef _TEST_H_2 #define _TEST_H_3 4 void TestA();5 void TestB();6 7 #endiftest_a.cpp1 #include 2 #include "test.h"3 4 void TestA()5 {
2013-12-04 02:19:42 634
转载 造成segment fault,产生core dump的可能原因
在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该种类型的错误往往与指针操作相关。1、内存访问越界a) 由于使用错误的下标,导致数组访问越界b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符c) 使用strcpy, strcat, spr
2013-12-04 02:05:45 966
转载 宏函数和函数的区别
函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。大家要知道的是,函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查选项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和出栈操作,所以,函数调用需要一些CPU时间。 而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所
2013-12-04 02:02:37 554
转载 头文件的循环依赖问题
比如,有三个头文件a.h(引用b.h), b.h(引用c.h) c.h(引用a.h)就会造成文件的循环依赖!后果,很可怕!比如有个文件a.c,上面有#include "a.h",那在a.c文件编译之前,预处理程序就会不断的把这三个头文件的内容复制过来,超过了一定的数量,就会导致“头文件数太多”的编译错误。解决方法呢,当然就是常见的#i
2013-12-04 01:56:52 6570 1
原创 关于在头文件中实现函数的情况
下面举个例子,这个例子只有3个文件/* fun.h */#ifndef FUN_H#define FUN_Hvoid base(){};void fun();#endif /* fun.c */#include "fun.h"void fun(){ base();}/* main.c */#include "fun.h"int main(){ f
2013-12-04 01:41:43 2043
转载 java多线程,MultpleThread
一、定义线程 第1中方法:扩展java.lang.Thread类 Thread类中有个run()方法,其子类应该重写该方法! 第2中方法: 实现java.lang.Runnable接口 使用接口Runnable的对象创建一个线程时,启动该线程时将会在独立运行的线程中调用(Runn
2013-11-30 13:16:02 559
原创 说说C中的malloc和free
malloc是申请一块内存,free是释放一块内存!说到内存,必然要说指针,指针指向某块内存嘛。如:某函数内定义一个指针变量,并为其申请一块内存,让这个指针指向这块内存!此时,指针变量本身存在函数的栈区(调用函数时,创建栈区;调用结束时,栈区销毁) 而这块内存是存放在堆区的!这里有个错误的结论:函数调用结束时,在栈内的指针销毁的同时,它指向的内存也被销毁!它们是没有关系的,堆
2013-11-28 11:43:51 649
原创 测试本机的大小端模式
1. 什么是大小端模式?区别? (小端存储模式和大端存储模式) 如数字0x1234,低字节位是0x34,高字节位是0x12。 假设从地址0x4000处开始存放 内存地址 小端模式(little-endian) 大端模式(big-endian) 0x4000 0x34
2013-11-28 10:34:57 880
转载 SSH
SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。S S H最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。S S H在正确使用时可弥补网络中的漏洞。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。SSH有很多非常酷的特性,如果它是你每天
2013-11-26 00:34:02 504
转载 apache
Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可
2013-11-26 00:23:09 564
原创 数据结构之排序--归并排序
四 归并排序归并:把若干个有序的数列, 合成一个有序的数列如二路归并:void merge(int d1[], int len1, int d2[], int len2, int tmp[]){ int i, j, k; i = j = k = 0; while (i < len1 && j < len2) { if (d1[i] > d2
2013-11-18 15:44:55 521
原创 数据结构之排序--选择类排序
三 选择类排序 基本思想:从待排数列中选出最小的记录,放到已排好序的元素之后,直至所有元素排序完毕!1. 直接选择排序 初始时:有序区为空,无序区即待排数列 第一趟,从无序区中选出最小的,与无序区的第一个元素交换。新的有序区多一个元素,新的无序区少一个元素,有序区在无序区之前! 第二趟,...... ............#define SWA
2013-11-18 00:10:13 789
原创 数据结构之排序--交换类排序
二 交换类排序 基本思想是:两两比较待排序记录的关键字,发现两记录的次序相反时即进行交换,直到没有反序的记录为止!1. 冒泡排序 冒泡的原则:轻气泡不能在重气泡之下! 如何进行?从下到上扫描待排记录,凡违反冒泡原则的轻气泡就向上“漂浮”。如此反复进行,直到任意两个气泡,都是轻者在上,重者在下!void bubble_sort(int a[], int len)
2013-11-17 16:19:32 1016
原创 数据结构之排序--插入类排序
一. 插入类排序1. 直接插入排序2. 二分插入排序3.希尔排序 希尔排序优于直接插入排序。理由:1> 当待排数列大致有序时,比较和移动的次数较少(比较后才移动,比较的少自然移动的少,移动的少比较的也少) 2> 当待排数列元数个数较少时,n 与 n^2 的差距也小。即O(n)与O(n^2)差不多 3>希尔排序刚开始时,增量大,分组多,之后增量减
2013-11-17 11:53:54 983
原创 [error]stack smashing detected
字符串成功打印出来后,但是竟然报这个错:(栈溢出)*** stack smashing detected ***: ./test terminatedAborted (core dumped)结果都已经出来为什么报这个错呢?既然结果已经出来,推测应该不是算法(strnat1)的问题。下面是调用处的代码int main(){ char str[] = "123456
2013-11-13 12:57:01 1857
原创 [C/C++]写出几个无限循环
1. 写出几个死循环while (1) {}注:1不可省略for ( ; ; ) {}注:第一个条件为初始条件,第二个条件是循环结束条件,第三个表达式是变更表达式 循环结束条件若是省略的话,应写入循环体中。此时循环体中没有结束条件(此时程序已进入循环),故程序将一直执行。。。for(;;)编译成汇编后是无条件转移,while(1)
2013-11-11 16:17:24 7662
原创 几段关于const的代码
1. 改变const修饰的“只读变量”#include int main(){ const int a = 9; int *pa = (int *)&a; *pa = 10; printf("a = %d\n", a); return 0;}2. memmove(void *dest, const void *src, si
2013-11-11 13:20:43 791
原创 [C/C++]const的作用
首先:const修饰的变量是“只读变量”!如果你说成是“常量“,那说明你是个业余者,虽然你明白它是干嘛的。表达时尽量标准,趋近于专业!关于const最简单的一句“const意味着只读”! 这是一句正确的答案,但是这不够详细,不够深入!下面几个句应该知道是什么意思:1. const int a;2. int const a; 这两句是一个意思:a是“只读的”,即
2013-11-11 12:58:54 774
原创 warning:initialization discards ‘const’ qualifier from pointer target type 解决方法
initialization discards ‘const’ qualifier from pointer target type意思是,初始化时丢掉了(目标类型的)‘const’限定符eg: const int a = 9; int *pa = &a;就会报这个警告!方法一:const int *pa = &a;方法二:int *pa = (int *)&a; 这种
2013-11-11 12:13:59 21137
原创 C++中引用和指针的区别
引用可看作是某变量的别名,对引用进行操作就像操作原变量(直接操作)!主要在函数传递参数时使用,如SWAP函数指针的值存的是变量的地址,通过操作指针可以间接操作变量!区别: 1.引用声明时必须指定引用的对象,指针不必 2.引用不能为空,指针可以为NULL 3.引用一旦声明就不能改变,指针可以指向不同的对象 4.引用访问对象是直接访问,指
2013-11-10 20:20:31 699
转载 数组名和指针的区别
只有在作为函数的参数时,数组名和指针才是相同的(即“数组名就是指针”,只适用于这种情况)!其余情况一律不同!第一:数组名不是指针!它们的大小不同第二:数组名很像指针!比如,数组名可以赋给指针。又比如strcpy函数是以字符型指针为参数,但是我们可以传给它数组名!数组名的本质:1.数组名的内涵在于指代实体是一种数据结构,这种数据结构就是数组。(数组名带指一种数据结构:数组)
2013-11-10 12:25:56 696
原创 TCP和UDP的区别
TCP(Transimission Control Protocol 传输控制协议)和UDP(User Datagram Protocol)是传输层的两种实现版本!它们之间提供基本的服务又各有所长。因此,根据对特定服务质量的要求,应用层软件单元可以选择通过传输层的TCP版本或者UDP版本来传输数据。TCP和UDP之间的区别:第一,基于TCP的传输层在发送报文前要建立一个连接!
2013-11-09 22:28:14 466
原创 [c/c++]static的作用
一:有关生命周期,加了static的局部变量,存储在data区,并且它的初始化是由编译器完成如:int fun() {static int tmp = 1; tmp++; return tmp;} 当在main中两次调用fun()时,int a = fun(), int b = fun(),此时结果为: a = 2, b = 3; 原因就是程序编译过之后,fun
2013-11-02 15:12:01 570
原创 chmod三种用法
如:file.c的权限为rw-rw-r--要更改为rwxrwxr--第一种方法: 在原来权限的基础上进行加减chmod u+x,,g+x,o-w file.c第二种方法:取消原来的权限,赋新的权限chmod u=rwx,g=rwx,o=r file.c第三种方法:数字赋权限chmod 0774 file.c
2013-09-25 09:54:28 2802
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人