上一页 1 ··· 3 4 5 6 7

2013年1月28日

gcc命令生成静态库和动态库

摘要: 一、基本概念1.1什么是库在windows 平台和linux 平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows 和linux 的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux 下的库。1.2库的种类linux 下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。1.3库存在的意义库是别人写好的现有的,成熟 阅读全文

posted @ 2013-01-28 17:27 善敗將軍 阅读(689) 评论(0) 推荐(0) 编辑

gcc命令

摘要: gcc所遵循的部分约定规则:.c为后缀的文件,C语言源代码文件;.a为后缀的文件,是由目标文件构成的档案库文件;.C,.cc或.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;.h为后缀的文件,是程序所包含的头文件;.i 为后缀的文件,是C源代码文件且不应该对其执行预处理;.ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;.m为后缀的文件,是Objective-C源代码文件;.o为后缀的文件,是编译后的目标文件;.s为后缀的文件,是汇编语言源代码文件;.S为后缀的文件,是经过预编译的汇编语言源代码文件。在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称 阅读全文

posted @ 2013-01-28 14:11 善敗將軍 阅读(161) 评论(0) 推荐(0) 编辑

vi二进制

摘要: 通常来说文件分为文本和二进制文件两大类,文本文件的编辑很容易,Windows下的notepad、UltraEdit都很好用,二进制文件的编辑在Windows下也有很多工具,UltraEdit也不错,但是Linux下呢?今天终于发现了一个好方法,但是最终出处找不到了。首先创建一个二进制文件:?123[oracle@logserver tmp]$ echo-n "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"> test.bin [oracle@logserver tmp]$ cattest.bin ABCDE 阅读全文

posted @ 2013-01-28 13:59 善敗將軍 阅读(295) 评论(0) 推荐(0) 编辑

2013年1月27日

字符串Hash函数评估

摘要: Hash查找因为其O(1)的查找性能而著称,被对查找性能要求高的应用所广泛采用。它的基本思想是:(1) 创建一个定长的线性Hash表,一般可以初始化时指定length;(2) 设计Hash函数,将关键字key散射到Hash表中。其中hash函数设计是最为关键的,均匀分布、冲突概率小全在它;(3) 通常采用拉链方法来解决hash冲突问题,即散射到同一个hash表项的关键字,以链表形式来表示(也称为桶backet);(4)给定关键字key,就可以在O(1) + O(m)的时间复杂度内定位到目标。其中,m为拉链长度,即桶深。Hash应用中,字符串是最为常见的关键字,应用非常普通,现在的程序设计语言中 阅读全文

posted @ 2013-01-27 18:23 善敗將軍 阅读(217) 评论(0) 推荐(0) 编辑

Java网络编程精解之ServerSocket用法详解一

摘要: 在客户/服务器通信模式中,服务器端需要创建监听特定端口的ServerSocket,ServerSocket负责接收客户连接请求。本章首先介绍ServerSocket类的各个构造方法,以及成员方法的用法,接着介绍服务器如何用多线程来处理与多个客户的通信任务。本章提供线程池的一种实现方式。线程池包括一个工作队列和若干工作线程。服务器程序向工作队列中加入与客户通信的任务,工作线程不断从工作队列中取出任务并执行它。本章还介绍了java.util.concurrent包中的线程池类的用法,在服务器程序中可以直接使用它们。3.1 构造ServerSocketServerSocket的构造方法有以下几种重载 阅读全文

posted @ 2013-01-27 18:11 善敗將軍 阅读(641) 评论(0) 推荐(0) 编辑

Java Socket编程入门

摘要: 出于多种目的要写这篇文章,简单的说是因为最近的工作和Java 的Socket相关.所以工作之余就有了写点东西的想法.同样我不希望把文章写的太复杂,因此浅出自己的一点心得.事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了.网络编程的基本模型就是客户机到服务器模型.简单的说就是两个进程之间相互通讯,然后其中一个必须提供一个固定的位置, 阅读全文

posted @ 2013-01-27 15:52 善敗將軍 阅读(179) 评论(0) 推荐(0) 编辑

Java NIO 和 Cindy

摘要: 一、首先讲讲JavaNIO的原理: javaio包提供了一个简单的模型去处理网络流,它所有的读写方法均为阻塞操作,因此在一般的应用里,用户总是开启一个独立线程或一个线程池去处理这些操作。但是如果面对服务器端的成百上千个连接,采用javaio提供的机制,就需要同时开启成百上千个线程,即使能够处理过来,花在线程上下文切换的时间也远远多于网络操作的用时。而JavaNIO非堵塞技术实际是采取Reactor模式,或者说是Observer模式为我们监察I/O端口,如果有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外界看,实现了流畅的I/O读写,不堵塞了。它的主线程只有一个,基本上每个处理 阅读全文

posted @ 2013-01-27 15:50 善敗將軍 阅读(1456) 评论(0) 推荐(0) 编辑

java分布式通信系统(J2EE分布式服务器架构)

摘要: http://blog.csdn.net/hbzyaxiu520/article/details/8528639 阅读全文

posted @ 2013-01-27 15:48 善敗將軍 阅读(226) 评论(0) 推荐(0) 编辑

查看Linux版本信息

摘要: 查看各种Linux系统版本信息的Shell命令几种查看Linux版本信息的方法:1. uname -a2. cat /proc/version3. cat /etc/issue4. lsb_release -a其中lsb_release -a命令显示的信息最详细: 阅读全文

posted @ 2013-01-27 14:11 善敗將軍 阅读(166) 评论(1) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7

导航