自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代威涛的主页

Linux C/C++ JAVA

  • 博客(92)
  • 收藏
  • 关注

原创 毕业十年聚会建议

1 背景潞河中学2002届3班已经毕业十年,同学聚会搞过两三次,最后由于工作原因搁置了。已经有将近3个年头没有像样的同学聚会。在十年当口,身为3班的一员,每个人都有责任和义务促成这个聚会。 2 概述在毕业十年之际组织聚会,规模预计比较大,组织活动的工作量很大,

2011-08-23 18:22:23 2202

原创 Python if and input

raw_input用于输入流的捕捉:#!/usr/bin/python# Filename: if.py number = 23guess = int(raw_input('Enter an integer : '))if guess == number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # N

2010-12-29 01:54:00 1463

原创 Python hello world

<br />最近开始学习python, 由于是windows端, 只能下个python for windows.<br />按照惯例,先来个hello world<br /> <br />#!/usr/bin/python'My first python script'mystr = 'hello world'print(mystr) <br /> <br />执行结果:<br /><br />.<br />>>> ================================ RESTART

2010-12-29 01:30:00 1216

原创 [eclipse]Failed to connect to remote VM. Connection refused

解决步骤如下:1 查看tomcat的启动log,第一行“Listening for transport dt_socket at address: xxxx检查这里是不是8000,如果不是,需要修改catalina.bat文件 2 修改tomcat的startup.bat文件,在@echo off后一行增加set jpda_address=8000 3 执行startup.

2010-04-07 17:08:00 39637 2

转载 谈SETUID权限

1什么是SetUID     我们知道,在linux的命令行下执行“ps”命令时,就会列出当前系统中的所有进程,在其中可以看到每个进程都和用户的真实id关联,实际上,Linux中的每个进程还跟一个称为有效用户id(set User id)紧密关联。前者用于表示该进程由那个用户控制,后者用于为新建立的文件分配所有权,检查文件访问许可等操作,同时有效用户为该文件的所有者。linux系统内核允许一个

2010-02-10 12:55:00 1659

原创 Linux下的setjmp和longjmp

在LINUX下有一组标准跳转函数, 类似于编程中的局部跳转goto, 原型如下:#include int setjmp(jmp_buf env);返回值: 若直接调用则返回0, 若从longjmp调用返回则返回非0值.void longjmp(jmp_buf env, int val);  这次用伪码举例:#include #define ERR_U

2009-08-11 15:30:00 2229

转载 VI中的查找和替换

vi是unix和linux系统上最强大和最普遍的文本编辑工具,一般而言,对于初次接触vi的朋友,往往对它的字符替换不是很熟悉,下面做一个简单的介绍:对于字符替换,应该解决这样几个问题: 用谁替换谁的问题; 在那个范围内进行查找和替换; 是替换查找到的第一个还是所有匹配的项全部替换;vi命令的各种选项就提供了这样的选择按住esc键,进入命令状态,然后按:

2008-06-18 02:31:00 3041

转载 ORACLE TO_CHAR

The following are number examples for the to_char function. to_char(1210.73, 9999.9) would return 1210.7 to_char(1210.73, 9,999.99) would return 1,210.73 to_char(1210.73, $9,999.00) wo

2008-06-04 17:23:00 1943 2

原创 LINUX下建立临时文件: mkstemp

  LINUX下建立临时的方法(函数)有很多, mktemp, tmpfile等等. 今天只推荐最安全最好用的一种: mkstemp.mkstemp (建立唯一临时文件)头文件: #include stdlib.h>声明:   int mkstemp(char *template)返回值: 成功则返回0, 失败则返回-1.说明:  建立唯一临时文件名, template须以数组形式声明而非

2008-05-20 00:11:00 11616 3

原创 我醒了, waked up

  自从去年10月开始玩WOW以来, 一直没有更新BLOG, 让这里的关注者大减, 访问量也急剧下降. 对不起, 我让大家失望了.  5月12日的地震没有把我震醒, 但今日九城宣布停止WOW的运营3天, 我醒了, 就象一个刚懂事的孩子, 生活中多出了许多东西, 朋友, 同学, 音乐, 工作的干劲儿也一下子上来了.   牛说, 他们公司今天多了很多加班的, 都是因为WOW停止运营的消息. 如

2008-05-19 23:24:00 1106

转载 ORACLE查询树型关系(connect by prior start with)

connect by prior start with 经常会被用到一个表中存在递归关系的时候。比如我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。典型的使用方法就是:select * from table connect by prior cur_id=paren

2008-04-30 10:48:00 1764

原创 XML文件写入

前面文章已经介绍了XML文件的DOM解析方法, 这篇文章简单说明一下写入. 我自己用fprintf封装了几个函数, 具体如下, 很容易看懂:cs_xml.h#ifndef CS_XML_H#define CS_XML_H#include stdio.h>/* Add a node and a value(string) to XML */int xml_add_node_val_s

2008-01-17 12:55:00 1351

原创 XML DOM解析

1 DOM原理:由于XML文件可以视为一个树型数据结构,DOM就是把这文档读到一棵树中,放到内存里,然后通过DOM提供的函数进行解析的一种XML解析方法。 2 DOM结点类型:DOM结点有以下几种类型,可以通过XmlDomGetNodeType()方法获得返回值(int)。ELEMENT_NODE=1ATTRIBUTE_NODE=2TEXT_NODE=3CDATA_

2008-01-03 15:38:00 1831 1

原创 自己写的一个通用链表

最近给自己正在做的项目写了一个链表代码, 主要用于PRO*C的select数据查询结果的存储. 发到上面来分享一下, 代码很短.db_list.h:#ifndef DB_LIST_H#define DB_LIST_H/* List node structure */typedef struct db_list_node{    void *data;                /*

2007-12-10 17:35:00 1695 1

原创 Oracle Pro*C 动态SQL技术

Pro*C的常用动态SQL技术一共有3种: 用于处理不包含宿主变量的动态SQL, 不能用于SELECT语句. 用于处理输入宿主变量个数和类型已经确定的动态SQL, 不能用于SELECT语句. 用于处理选择列表项和输入宿主变量个数已经确定的动态SQL, 此种方法可以处理所有前两种方法能处理的情况, 此外, 还能处理SELECT语句. 由于第3种方法已经包

2007-11-06 18:13:00 3005 5

原创 关于测试函数(假代码)的使用

关于测试函数的使用  1 目的:为了让大家了解测试函数的使用方法,本文详细介绍了测试函数的选择编译(链接)的方法。 2 目录结构:组版服务器组的代码目录结构(初定):├─Service_001│  ├─code│  ├─testcode│  └─make└─Service_002    ├─code    ├─make└─testcode

2007-11-02 15:02:00 2295

原创 ProC中使用宏的预处理流程

ProC中常见的是使用宏来管理常用的数据库操作命令. 比如:#define GetName() EXEC SQL select name /                           from TBL_MEMBER这样定义了宏, 在以后的代码中可以直接用GetName()来实现这几行SQL语句的操作了.但是, 这产生了一个问题:宏的替换是在gcc的编译期中的预处理

2007-10-31 11:29:00 2444

原创 Linux Signal (8): sigsetjmp和siglongjmp

进程部分介绍过了setjmp和longjmp函数, 这两个函数在跳转时会带信号屏蔽字跳转, 在信号处理程序(hanlder)中使用longjmp会导致后来产生的这种信号被屏蔽.POSIX.1 也没有具体说明setjmp和longjmp对信号屏蔽字的作用, 而是定义了两个新函数: sigsetjmp和siglongjmp.1. 原型:#include setjmp.h>int sig

2007-09-28 11:12:00 13549 4

原创 Linux Signal (7): sigaction

sigaction函数是用作检查/修改与指定信号相关联的处理动作. 在UNIX早期版本中使用signal, 后来改用了sigaction, 可见它的功能比signal要强大. 另外, signal函数也是可以用sigaction实现的.1. sigaction原型:#include signal.h>int sigaction(int signo, const struct sigac

2007-09-27 17:02:00 6878 4

原创 Linux Signal (6): 信号屏蔽字

1. 概念:信号屏蔽字就是进程中被阻塞的信号集, 这些信号不能发送给该进程, 它们在该进程中被"屏蔽"了. 后面我们会提到, 实际上它们是被阻塞了.2. 信号屏蔽函数:#include signal.h>int sigprocmask(int how, const sigset_t *restrict set, sigset_t *restrict oset);成功则返回0, 

2007-09-25 15:46:00 13222 2

原创 Linux Signal (5): 信号集

信号集给我们提供了一个能表示多个信号的是数据类型(sigset_t), 它将在sigprocmask, sigpending, sigsuspend之类的函数中用到, 这些函数我会在以后的文章中介绍.1. 信号集相关函数:#include signal.h>int sigemptyset(sigset_t *set);成功则返回0, 出错则返回-1. 这个函数用作初始化set指

2007-09-25 13:05:00 14912

原创 Linux Signal (4): alarm和pause

1. alarm函数:alarm函数是设置一个计时器, 在计时器超时的时候, 产生SIGALRM信号. 如果不忽略或捕捉此信号, 它的默认操作是终止调用该alarm函数的进程.原型如下:#include unistd.h>unsigned int alarm(unsigned int seconds);返回0或余留秒数说一下alarm的返回值问题, 每个进程只能有一个ala

2007-09-25 11:21:00 10812

原创 Linux Signal (3): kill和raise

1. 函数说明:kill和raise是用来发送信号的:kill把信号发送给进程或进程组;raise把信号发送给(进程)自身.他们的原型如下:#include signal.h>int kill(pid_t pid, int signo);int raise(int signo);成功则返回0, 出错则返回-1 从原型上可以看出, raise函数是可以通过kill实现

2007-09-24 16:23:00 9411

原创 makefile的写法

makefile是一种描述依赖关系的文件, 它主要描述的是整个工程编译规则, 同时也给工程的维护提供很大的方便. 这在大型工程中非常实用. 在写好makefile之后, 只需要在命令行输入make命令, 工程就按照既定的makefile规则进行"自动化编译".1. 编译(compile)和链接(link):我们通常所说的编译一般来说指的是编译和链接这两个过程的总称. 不管是什么类型的源

2007-09-17 17:09:00 1815

转载 Linux的历史

简单说,linux就是跟windows一样,是一种电脑操作系统.可以在包括个人电脑在内的各种计算机上使用。它使用的版权许可证是支持软件的自由免费、开放源代码的GNU通用公共许可证GPL。多年来,Linux获得了广大黑客、计算机爱好者、科研人员以及普通用户的喜爱,目前已经广泛用于计算机行业的各领域,包括了个人电脑、服务器、工作站以及各类智能嵌入式系统等等.linux的历史可以上溯到60年代末,美国贝

2007-09-14 15:33:00 1154

转载 Linux的主要发行版

Linux 发行版众多,可以用多如牛毛来形容。曾经见到有人收集到了 300 多个 Linux 发行版。实际上,流传于世的 Linux发行版数目可能还远不止于此。这么多的 Linux 发行版,对打算从其他系统转换过来的用户来说可能会感到困惑;而即便是忠实的 Linux用户也没有时间和精力去挨个尝试。对此,DistroWatch 从众多 Linux 发行版中遴选出 10 个,无疑是一种很好的参考。sc

2007-09-14 15:31:00 1122

原创 Linux Signal (2): signal函数

1. 原型:#include signal.h>void (*signal(int signo, void (*func)(int))(int);成功则返回该信号以前的处理配置, 出错则返回SIG_ERR.参数说明: signo: 信号名, 如SIGINT. func: 对应signo的信号处理函数的函数名, 这个函数没有返回值, 有一个整型参数, 这是捕捉

2007-09-14 14:43:00 5942

原创 Linux Signal (1): 基本概念

1. 信号是软件中断:信号提供了一种处理异步事件的方法. 每个信号都有一个名字, 他们以SIG开头, 如SIGALRM是闹钟信号, 当由alarm函数设置的计时器超时后产生此信号, 然后由SIGALRM的信号处理函数接管处理, 处理之后返回调用alarm函数的应用程序中.2. 信号编号:在头文件中, 信号都用宏定义为正整数的信号编号, 不存在编号为0的信号, kill函数对编号为0

2007-09-14 10:51:00 6277 1

原创 一个无知人对Linux的挑衅

就在刚才, 准备下班的时候, 在CSDN看到一个帖子:==============================================================Linus Torvalds的成功是政治因素而不是技术因素的结果。 换句话,Torvalds是领袖,而非大师。 L粉们都是追星族。 Linus Torvalds以为他自己如何如何了? 飘飘然了? 一个好一点儿的计算

2007-09-12 19:19:00 1447 4

原创 中断和异常

    处理器的速度和外围硬件设备的速度往往不在一个数量级上, 因此, 如果Linux内核采取让处理器向硬件发出一个请求, 然后专门等待回应, 这种办法显然不好.    硬件响应慢, 因此内核需要在这段时间内处理其他事务, 等到硬件真正完成了请求的操作之后, 内核再回来对它进行处理. 要实现这种功能, 有两种方法: 轮询和中断.     轮询(polling)可以让内核定期对设备的状态进行

2007-09-11 14:08:00 2506 8

转载 系统调用

1什么是系统调用         系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传

2007-09-04 10:05:00 1336

转载 AT&T汇编语言与GCC内嵌汇编简介

AT&T汇编语言与GCC内嵌汇编简介1 AT&T 与INTEL的汇编语言语法的区别1.1大小写1.2操作数赋值方向1.3前缀1.4间接寻址语法1.5后缀1.6指令2 GCC内嵌汇编2.1简介2.2内嵌汇编举例2.3语法2.3.1汇编语句模板2.3.2输出部分2.3.3输入部分2.3.4限制字符2.3.5破坏描述部分2.4GCC如何编译内嵌汇编代码3后记本节先介绍AT&T汇编语言语法与INTEL汇编

2007-09-03 21:30:00 1145 2

原创 AT&T asm

一、AT&T 格式Linux 汇编语法格式 在 AT&T 汇编格式中,寄存器名要加上 % 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。在 AT&T 汇编格式中,用 $ 前缀表示一个立即操作数;而在 Intel 汇编格式中,立即数的表示不用带任何前缀。例如: 寄存器和立即数  

2007-09-03 18:30:00 3331

原创 GNU gcc 使用手册

   伟大的GNU认为man手册是Open Source发展的过时产物, 于是他们针对各种当家软件出了各自的手册, 如GNU Emacs, GNU Vim, 当然gcc是不可缺少的, 这是Stallman一生最伟大的产物之一. Richard Stallman 是Open Source界的伟大人物之一, 他是gcc, gdb, emacs的作者, 名声在OS界不可谓不大. 有一次, 他去某

2007-08-30 18:07:00 4930

原创 I/O的多路转接: select

1. 概念:     I/O多路转接技术, 是先构造一张有关描述符的列表, 然后调用一个函数, 直到这些描述符中的一个已准备好进行I/O时, 该函数才返回. 在返回时, 它告诉进程哪些描述符已经准备好可以进行I/O.    在Linux下poll, pselect, select这三个函数都可以执行I/O多路转接操作, 今天我们主要说select函数. 2. select函数:

2007-08-30 16:27:00 1650

原创 GTK编程初谈

    GTK是一个跨平台的GUI开发库, 它是用C语言以OO的方式(俗称面向对象C, 又称OO-C)开发的. 只要是有一定C语言和GUI开发基础, 用GTK是一件很简单的事.1. 安装与配置:由于我使用的是Ubuntu Linux, 重点只介绍Ubuntu下的GTK开发库安装方法:sudo apt-get install vim-full                 ;我是vi的忠实用户,

2007-08-22 22:25:00 8012 8

原创 Linux线程同步(4): 条件变量

    条件变量分为两部分: 条件和变量. 条件本身是由互斥量保护的. 线程在改变条件状态前先要锁住互斥量. 1. 初始化:    条件变量采用的数据类型是pthread_cond_t, 在使用之前必须要进行初始化, 这包括两种方式: 静态: 可以把常量PTHREAD_COND_INITIALIZER给静态分配的条件变量. 动态: pthread_cond_init

2007-08-22 19:39:00 6518

转载 GUI界的大战: QT VS GTK

        Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech公司出品,目前包括Qt, 基于 Framebuffer 的 Qt Embedded,快速开发工具 Qt Designer,国际化工具 Qt Linguist 等部分. Qt支持所有 Unix 系统,当然也包括 Linux,还支持WinNT/Win2k,Win95/98 平台。         Trollte

2007-08-21 15:48:00 32314 3

原创 Linux线程同步(3): 读写锁(rwlock)

    在线程同步系列的第一篇文章里已经说过, 读写锁是因为有3种状态, 所以可以有更高的并行性.1. 特性:    一次只有一个线程可以占有写模式的读写锁, 但是可以有多个线程同时占有读模式的读写锁. 正是因为这个特性, 当读写锁是写加锁状态时, 在这个锁被解锁之前, 所有试图对这个锁加锁的线程都会被阻塞. 当读写锁在读加锁状态时, 所有试图以读模式对它进行加锁的

2007-08-21 14:41:00 19526 3

转载 创造Windows下的自由软件: MinGW

MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。详情请参考http://www.mingw.org>。这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC (Microsoft Foundation Classes)。MinGW: A collection of freely available

2007-08-21 14:22:00 1723

空空如也

空空如也

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

TA关注的人

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