自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux makefile 教程

最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就是好文章。跟我一起写 M

2013-03-26 23:15:56 682

转载 makefile详解

五、定义模式规则 你可以使用模式规则来定义一个隐含规则。一个模式规则就好像一个一般的规则,只是在规则中,目标的定义需要有"%"字符。"%"的意思是表示一个或多个任意字符。在依赖目标中同样可以使用"%",只是依赖目标中的"%"的取值,取决于其目标。有一点需要注意的是,"%"的展开发生在变量和函数的展开之后,变量和函数的展开发生在make载入Makefile时,而模式规则中的"%"则发

2013-03-26 23:08:15 506

转载 linux后台开发常用调试工具

一、编译阶段nm                 获取二进制文件包含的符号信息strings           获取二进制文件包含的字符串常量strip               去除二进制文件包含的符号readelf           显示目标文件详细信息objdump         尽可能反汇编出源代码addr2line        根据地址查找代码行二、

2013-03-25 00:21:33 833

转载 strcpy,strcat, strcmp, atoi, itoa函数原型

基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)strcpy:/*********************** C语言标准库函数strcpy的一种典型的工业级的最简实现* 返回值:* 返回目标串的地址。* 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。* 参数:* strDe

2013-03-22 00:31:07 782

转载 python中类属性与实例属性总结

2012-09-11 10:33311人阅读评论(0)收藏举报stackoverflow上面的相关讨论http://stackoverflow.com/questions/2923579/python-class-attributehttp://stackoverflow.com/questions/1944625/what-is-the-relationship-between-

2013-02-24 16:56:48 511

转载 property()

2011-10-10 16:42153人阅读评论(0)收藏举报大家也许知道C#中提供了属性Property这个概念,让我们在对私有成员赋值、获取时更加方便,而不用像C++分别定义set*和get*两个函数,在使用时也就像直接使用变量一样。今天突然发现Python中竟然也提供了如此类似的方法,感到甚为亲切,发上来大家一起讨论一下,有不妥的地方还请多多指教。假设定义了一个类:C,该类必须继

2013-02-24 00:39:44 459

转载 python Property属性用法

假设定义了一个类:C,该类必须继承自object类,有一私有变量_xclass C: def __init__(self):  self.__x=None  1.现在介绍第一种使用属性的方法:  在该类中定义三个函数,分别用作赋值、取值和删除变量(此处表达也许不很清晰,请看示例) def getx(self):  return self.__x def setx(s

2013-02-24 00:11:14 566

转载 python 里面的单下划线与双下划线的区别(私有和保护)

Python 用下划线作为变量前缀和后缀指定特殊变量。_xxx 不能用'from moduleimport *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划线作为变量名的开始。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有 的”

2013-02-23 23:57:29 14617

原创 【Python】if __name__ == '__main__'

Python脚本和模块都是一个以.py结束的文件,那程序是如何判断一个.py文件是作为脚本还是模块呢?关键是一个名为__name__的变量,如果它的值是__main__,则不能作为模块,只能作为脚本直接运行。所以在很多脚本的最后都有一段类似下面的语句,限制只能以脚本方式运行,不作为模块:if __name__ == '__main__': main() 最近一直在学习用python,

2013-02-23 23:54:11 4906

原创 Python中super的用法探究

Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递。举一个很常见的例子:>>> class Foo:def bar(self, message):print(message)>>> Foo().bar("Hello, World.")Hello, Worl

2013-02-23 15:27:26 543

原创 Python装饰器学习

这是在Python学习小组上介绍的内容,现学现卖、多练习是好的学习方式。第一步:最简单的函数,准备附加额外功能?12345678# -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次'''def myfunc():print("myfunc() called.")

2013-02-22 23:35:36 483

转载 python之format

2013-01-01 18:3240人阅读评论(0)收藏举报在Python 3.0中,%操作符通过一个更强的格式化方法format()进行了增强。对str.format()的支持已经被反向移植到了Python 2.6在2.6中,8-bit字符串和Unicode字符串都有一个format()方法,这个方法会把字符串当作一个模版,通过传入的参数进行格式化。这个用来格式化的模版使用大括号({

2013-02-17 17:31:17 333

转载 unix网络编程-第六章-小结

I/O复用场合:1.当客户处理多个描述符(通常是交互和网络套接字)时,必须使用I/O复用。2.一个客户同时处理多个套接字是可能得。3.如果一个TCP服务器既要处理监听套接字,又要处理已连接套接字。4.如果一个服务器既要处理TCP,又要处理UDP,一般要用I/O复用。5.如果一个服务器要处理多个服务或者协议。I/O复用并非只限于网络编程,许多重要的应用程序也需要使用这项技术。

2013-01-25 21:58:40 410

转载 使用异步 I/O 大大提高应用程序的性能(来自IBM)

AIO简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它。AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的通知时,进程就可以检索 I/O 操作的结果I/O模型在深入介绍 AIO API 之前,

2012-12-12 22:49:19 388

转载 配置开发支持高并发TCP连接的Linux应用程序全攻略

2012-07-06 23:59606人阅读评论(0)收藏举报1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许 当前

2012-12-12 22:37:58 515

转载 I/O模型:阻塞、非阻塞 & 同步、异步

转自:http://jzhihui.iteye.com/这篇文章主要总结下这几个概念,前几天看到微博里在讨论,当时也有点搞不清楚,昨天在看到Reactor和Proactor模式的时候,又提到相关概念,索性搞搞清楚,写个总结。《Unix网络编程卷1:套接字联网API》(下面称为卷1)第6章对Unix I/O模型有5种划分:阻塞式I/O模型,非阻塞式I/O模型,I/O复用模型,

2012-12-12 21:34:06 546

转载 高性能IO设计的Reactor和Proactor模式 .

在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发I

2012-12-12 20:51:33 406

转载 Oracle expdp/impdp工具使用

Oracle数据泵一、数据泵的作用:        1.实现逻辑备份和逻辑恢复2.在数据库用户之间移动对象        3.在数据库之间移动对象        4.实现表空间转移二 、数据泵的特点与传统导出导入的区别       1.EXP和IMP是客户段工具程序, EXPDP和IMPDP是服务端的工具程序       2.EXP和IMP效

2012-12-07 20:39:44 462

原创 游标在存储过程中的使用

1、直接定义多个显示游标CREATE OR REPLACE PROCEDURE ACC.DBP_REALCITYTRAFFICCNT ISCURSOR cur1 IS SELECT 。。。 --第一个游标CURSOR cur2 IS SELECT 。。。 --第二个游标BEGIN--调用cur1BEGINOPEN cur1 ;     LOOP

2012-12-06 20:05:27 742

转载 alter table

------------------create talbe --------------------start-----------------------将一个表改名:ALTER TABLE 当前表名 RENAME TO 新表名;如:ALTER TABLE bouns RENAME TO bonus_new--增加一个列:ALTER TABLE 表名 ADD(列名

2012-12-06 19:00:06 602

原创 Oracle Storage参数

可用于:表空间、回滚段、表、索引、分区、快照、快照日志参数名称缺省值最小值最大值说明INITIAL5(数据块)2(数据块)操作系统限定分配给Segment的第一个Extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建。NEXT5(数据块)1(数据块)操作系统

2012-12-06 18:43:41 560

原创 oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令

1.oracle(1) 启动 监听        lsnrctl start;(2)进入sqlplus界面       sqlplus  /nolog       SQL>conn sys/jiaxiaoai@orcl as sysdba;(3)启动数据库实例       SQL>startup;(4)查看当前所有的数据库        select * fr

2012-12-05 21:56:11 470

转载 oracle: default role 详解

2011-07-15 16:16306人阅读评论(0)收藏举报文章写得不错,转载一下,仅供分享收藏!ORACLE创建角色的时候是可以带密码验证的。当为一个用户授予角色时,如果是授予的DEFAULT的时候,那么这个用户登录的时候自动就具备了这个角色,不需要进行这个角色的密码验证的。如果不是DEFAULT的,那么可以使用SET ROLE ROLE_NAME IDENTIFIED ROLE_PA

2012-12-05 17:57:37 429

转载 Oracle数据库权限管理学习笔记

1)权限,角色和用户的关系权限(privilege):Oracle数据库预先定义好的、执行某些操作的能力。角色(role):一组相关权限的集合。可以利用角色来简化权限的管理。用户(user):通过给用户授予适当的权限或角色,用户就能够登录数据库,在数据库中执行特定的DDL和DML操作。通过回收权限或角色,就能减少用户对数据库的操作能力。按照权限所针对的控制对象,可以将其分为系统

2012-12-04 00:11:45 590

转载 Oracle中的登陆权限总结

Oracle中的登陆权限总结1.oracle登陆验证方式是在这个文件设置: $ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora。★如果这条设成 SQLNET.AUTHENTICATION_SERVICES= (NTS),那就是说oracle使用操作系统认证方式,凡是以操作系统的ora_dba组的用户登录的,想以sysdba身份登录oracle,可以不用用户名密码:c

2012-12-03 14:34:19 566

转载 网络服务器后台程序开发架构

网络服务器后台程序开发几种架构包括:1.多线程模型,多线程模型即每次网络请求开启一个线程处理,这种模型瓶颈是高并发,容灾性能差。一旦某次处理挂起,将影响其他的线程的创建和运行,整个处理的并发数收到创建的线程个数限制,无法处理突发请求,存在很大不确定性。2.单线程+线程池模型。线程池具有一定的伸缩性。线程池比多线程模型要好,可以看成动态的多线程模型。网络层的线程与逻辑层的线程交互模型很重要。

2012-11-27 20:46:19 4019

转载 深入linux网络编程(三):异步阻塞IO —— epoll

1. epoll的优越性上一节介绍的select有几个缺点:存在最多监听的描述符上限FD_SETSIZE每次被唤醒时必须遍历才能知道是哪个描述符上状态ready,CPU随描述符数量线性增长描述符集需要从内核copy到用户态这几个缺点反过来正是epoll的优点,或者说epoll就是为了解决这些问题诞生的:没有最多监听的描述符上限FD_SETSIZE,只受最多文件描述符的限制,

2012-11-27 20:22:54 1002

转载 用C api 连接mysql数据库的 开发实例

1. 下载mysql c connector 安装包; 有两种方法:                  1 下载tar文件, 将其中的的 lib, include , bin 都放在 /usr/local 相应的目录下;2. 也可配置链接库的附加目录 : sudo vi /etc/ld.so.conf 文件中加入你的连接器的lib目录;                 3. 好像也可以

2012-11-16 17:22:51 2340

转载 mysql_num_fields与mysql_field_count的区别

mysql_num_fields和mysql_field_count都是获取结果中列的个数,但是这两个函数在使用的时候是存在区别的。先看一段代码(上篇文章提供的数据库):[cpp] view plaincopyprint?#include  #include   #include  #include     int main()  {      ch

2012-11-16 16:14:03 1340

转载 tcpdump

Content-type: text/htmlTCPDUMPSection: Maintenance Commands (8)Updated: 30 June 1997IndexReturn to Main Contents 名称 (NAME)tcpdump - 转储网络上的数据流  总览 (SYNOPSIS)tcpdump [ -adeflnNOpqS

2012-10-03 21:25:15 684

转载 多线程编程

Linux互斥锁、条件变量和信号量进行多线程编程,最应该注意的就是那些共享的数据,因为无法知道哪个线程会在哪个时候对它进行操作,也无法得知哪个线程会先运行,哪个线程会后运行。所以,要对这些资源进行合理的分配和正确的使用。在Linux下,提供了互斥锁、条件变量和信号量来对共享资源进行保护。一、互斥锁互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源。需

2012-09-01 11:29:12 508

转载 多线程之条件变量

1.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的属性将由cattr中

2012-08-31 16:44:29 391

转载 pthread_cond_broadcast

LINUX环境下多线程编程肯定会遇到需要条件变量的情况,此时必然要使用pthread_cond_wait()函数。但这个函数的执行过程比较难于理解。    pthread_cond_wait()的工作流程如下(以MAN中的EXAMPLE为例):       Consider two shared variables x and y, protected by the mutex mut,

2012-08-31 16:37:07 938

转载 条件变量 pthread_cond_t

Linux操作系统下的多线程编程详细解析----条件变量 1.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参

2012-08-31 15:13:46 616

原创 pthread_cond_wait

wait的时候会释放锁,从wait返回的时候会再次要求锁,如果不能得到锁,线程就不回被wake up,所以broadcast时的处理逻辑如下:1.所有线程被唤醒(或者是一个随机的线程),但只有一个线程能获取到锁,该线程醒来处理事务,或者再次wait或者处理完后unlock2.上个线程unlock或者wait后,锁被释放,另外的一个线程获取到锁,开始同样的操作3.这里注意的是任何一个线程

2012-08-30 15:01:02 351

原创 linux下线程的同步

同步是也是一种互斥,但需要通过一定机制实现访问者对资源的有序访问。下面是linux下线程同步的代码。线程2的先打印,然后才能轮到线程1打印。#include #include #include int value = 0;sem_t sem1,sem2;void *mythread();void *mythread1(){int retval;int i =

2012-08-29 21:00:18 404

原创 多线程高级编程

一.pthread_create()之前的属性设置1.线程属性设置我们用pthread_create函数创建一个线程,在这个线程中,我们使用默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。属性结构为pthread_attr_t,它同样在头文件pthread.h中定义,属性值不能直接设置,须使用相关函数进

2012-08-29 20:58:40 557

转载 pthread_cond_wait()的使用

pthread_cond_wait()/************pthread_cond_wait()的使用方法**********/    pthread_mutex_lock(&qlock);        pthread_cond_wait(&qready, &qlock);    pthread_mutex_unlock(&qlock);/***********

2012-08-29 19:58:54 4065

转载 Linux C 多线程执行顺序问题

1:多线程设计通常是比较麻烦的,因为它牵涉到,线程间的同步、和执行顺序问题。在用户没有设定线程间的调度策略时,系统默认采取基于时间片轮转的调度策略。本实验是在默认的调度策略下,测试线程间的执行顺序问题。本实验用的系统为Ubuntu10.04, Thread model: posixgcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) 2

2012-08-29 19:31:10 736

原创 线程顺序打印ABC

编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。程序代码如下:#include#includeusing namespace std;#ifdef __cplusplusextern "C"{#endif#include

2012-08-29 19:11:01 851

嵌入式Linux应用程序开发教程

嵌入式Linux应用程序开发标准教程,非常适合初学者系统的学习Linux下面的开发

2014-08-05

c++ socket 网络通信架构

本文档是关于Socket 通信中多事务处理的程序框架案例.全文分为四部分, 第一部分:Socket 通信事务处理中的常见问题描述; 第二部分:通信事务处理的协议定义; 第三部分:程序框架原理描述; 第四部分:代码详解

2014-08-05

[计算机网络第五版]计算机网络第五版

本书比较系统的介绍网络相关的知识,非常适合初学者,比较系统介绍了tcp/ip协议栈相关的知识。

2012-12-10

mysql开发教程

mysql教程

2012-11-20

SQL2000教程

SQL2000教程

2012-11-14

unix网络编程卷2

unix网络编程卷2,介绍的内容很全面,很适合刚接触linux或者unix网络编程开发人员学习

2012-08-24

空空如也

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

TA关注的人

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