自定义博客皮肤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++专家,不达目标誓不罢休

记录学习技术的点点滴滴

  • 博客(33)
  • 资源 (8)
  • 收藏
  • 关注

原创 指针的指针用法理解

指针的指针用法理解Case:需要在子函数中改变指针的指向,即需要用指针带回一个地址时;指针传递本质上是值传递的方式,它所传递的是一个地址值;因此如果改变被调函数中的指针地址,它将影响不到主调函数的相关变量。如果想通过指针参数传递来改变主调函数中的相关变量,那就得使用指向指针的指针,或者指针引用。例如#include //使用指针的指针的研究://Case1:

2015-03-11 10:16:08 483 1

原创 内存对齐的方法理解

#define SKB_DATA_ALIGN(X) (((X) + (WORDSIZE - 1)) & \                                 ~(WORDSIZE - 1))

2014-06-07 10:05:02 431

原创 REGEXP_LIKE,REGEXP_INSTR,REGEXP_SUBSTR,REGEXP_REPLACE 用法

ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它们使用POSI

2014-06-06 13:02:05 794

原创 extern作用详解

extern 作用1:声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。例1:创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cpp:int iRI;int main(){//.....}//B.cppint iRI;gcc A.cpp -cgcc B.cpp -c编译

2014-06-06 13:02:03 450

原创 格式化字符串说明,以printf为例,同样适用于scanf类组

printf()会根据参数format字符串来转换并格式化数据,然后将结果写出到标准输出设备,直到出现字符串结束('\0')为止。参数format字符串可包含下列三种字符类型1.一般文本,伴随直接输出。2.ASCII控制字符,如\t、\n等。3.格式转换字符。格式转换为一个百分比符号(%)及其后的格式字符所组成。一般而言,每个%符号在其后都必需有一printf()的参数与之相呼应(只有当%%转换字

2014-06-06 13:02:01 584

原创 time命令含义

linux使用time命令获取命令执行时间  Linux下time命令可以获取到一个程序的执行时间,包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。 它的使用方法和前面讲过的strace类似,在待执行的命令前加上time即可。 来看一个例子程序test.c #incl Linux下time命令可以获取到一个程序的执行

2014-06-06 13:01:59 606

原创 C 编程获取正在运行的程序进程号

程序实现思想:Linux 系统的进程号是保存在 /proc 目录下的,一个在 linux 系统上运行的程序,只要是在运行状态下,就必然会在 /proc 目录下写入一批文件,其文件写入的方式如下:/proc//文件组这里面的文件组是指一批文件,不是指一个文件,大致的文件名信息如下:dr-xr-xr-x 2 work work 0 09-21 00:51 attr-r-------- 1

2014-06-06 13:01:57 1510

原创 Linux程序前台后台切换

Linux程序前台后台切换1、在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行root@Ubuntu$ ./tcpserv01 &2、如果程序正在前台运行,可以使用 Ctrl+z 选项把程序暂停,然后用 bg %[number] 命令把这个程序放到后台运行cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ ./tcpse

2014-06-06 13:01:54 692

原创 oracle压缩表/表空间

从Oracle 9iR2 开始,ORACLE提供了表/表空间压缩技术,以减少磁盘开销,节省空间,并在某些情况下提高查询性能。表压缩是如何工作的在Orcle9i第2版中,表压缩特性通过删除在数据库表中发现的重复数据值来节省空间。压缩是在数据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以便储存在该数据块中的多个位置上出现的数据的单一拷贝。这一被保留的

2014-06-06 13:01:52 448

原创 使用gdb调试C程序

一、首先要在gcc中用 -g参数生成调试信息例: gcc -g test.c -o test;二、运行gdb并装入test: gdb test三、使用gdb中的list命令(可简写成l)列出源码清单:l并回车四、在gdb中如果不输入任何命令直接按回车则重复执行上次命令五、在某行设置断点,如在每12行设置断点:break 12六、在某个函数入口处设置断点,如在func函数入口处设置断点:break

2014-06-06 13:01:50 536

原创 求解 segment fault 问题

#includemain(){    if(vfork() ==0)    {        printf(“This is the child process\n”);    }else{        printf(“This is the parent process\n”);    }}这段代码编译运行完,在最后报了一个segment fault 的错误,在最后加上exit(1)就没报

2014-06-06 13:01:48 519

原创 位移操作符,用法之一

比如说,x是一个int.您想要执行x/=2您要知道这是很慢的您可以直接x>>1这样就相当于x/=2了如果您想要除以2的n次方,那如果传统操作,效率就太低了,你首先要算出2的n次方,这很耗时间.用位运算:x>>n 搞定.这只是很小的一部分应用.又比如在N皇后问题中,直接搜索的效率异常低下,n>10的时候您就等您的程序结束可以等得哭了..这时也可以用位运算.C中没有逻辑数组(C++有),可实际上逻辑数

2014-06-06 13:01:46 863 1

原创 c++字符串大小写转换

c++字符串大小写转换 在C++中,由于没有单独定义string这个对象,所以字符串的操作比较麻烦些。字符串转换大小写是一个常用的功能,今天就简单总结下常用转换的方法:由于ANSI和Unicode在函数名上有差别,故都列出来,不过本人以Unicode为主。【1.用C语言标准库函数toupper,tolower】头文件:cctype   c下面:ctype.h转大写Ansi版: int to

2014-06-06 13:01:43 816

原创 undefined reference to `__gxx_personality_v0'

错误:undefined reference to `__gxx_personality_v0'  * 编译 c++ 程序需要添加 -lstdc++   sample: gcc -lstdc++ -o test test.c,否则会报 "undefinedreference to '__gxx_personality_v0' " 错误2. 唉,用gcc命令编译C程序,用g++命令编译C++

2014-06-06 13:01:41 495

原创 c中 ## 的用法

最近发现在C中有很多的东西值得我们学习。C中的#号不仅是#include,#define等的关键字首使用而已,#在宏中还有很多用法。具体请看下面我来举例1.双#号的宏用法。我相信双##号的用法应该大部分人都见过吧,主要是用来连接宏变量名使用,在GCC参考手册中这样记载。可用于宏内部将两个源代码权标连接成一个的连接指示字,可用来构造不会被解析器错误解释的名字。例如,下面两个宏会实现连

2014-06-06 13:01:39 537

原创 enum类型的作用

enum主要是用来定义常数,这样,在程序中可以用常数名称(如mon,tue...)来代替具体的值(1,2,...),使程序更具可读性。 用enum与直接用#define或者const定义常数相比,有两个优点: 1、enum中的值是依次递增的,不必为每个常数指定一个数字,在增加常数时很方便 2、enum是有类型安全的。用#define或const定义的常数,一般是用int等数字类型来存放,如  

2014-06-06 13:01:37 1210

原创 虚函数、纯虚函数详解

虚函数:父类中有虚函数,如果子类实例以父类的身份出现,那么调用虚函数的时候就会是子类的实现,而不是父类的实现,如果是普通方法,那么将会调用父类的实现1.首先:强调一个概念        定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。       定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到

2014-06-06 13:01:34 410

原创 设置生成core文件

有些linux默认不生成core文件,在那里设置,程序异常退出时才能生成core文件:ulimit   -c   corefile_size   if   corefile_size   is   zero,   it   will   not   create   core   file for   example ulimit   -c   1024 在一个程序崩溃时,默认

2014-06-06 13:01:32 641

原创 gcc编译选项

转载自http://blogold.chinaunix.net/u3/94700/showart.php?id=2340792gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告:            -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat            -Wcha

2014-06-06 13:01:30 465

原创 shell 命令行选项处理方法 getopts

一个完善的shell脚本应该能处理行如 -option 的命令行选项,bash 有一个内置的命令 getopts 可用来处理命令行选项 示例,用法 getopts.h -x -y YARG -z ZARG * bbkf:/yzyfb/report/cdq/bash$cat getopts.sh#!/bin/bash# getopts.sh - Using getopts######

2014-06-06 13:01:28 541

原创 dbx 命令命令详解[转贴]

dbx是unix下普遍的源码调试工具, 掌握好了dbx的使用,无疑象增添了unix下编程的一把利器研究了一下午dbx的连机文档,发现dbx很是简单易用现在简单介绍一下dbx的使用方法,让更多的朋友免去独自研究的苦楚dbx主要用来调试用f77或cc等编译工具生成的fortran和c语言的源代码当然该程序必须在调试过程中用-g参数包含入调试信息,比方说我在unix下编写了一个hello.c的程序:vo

2014-06-06 13:01:26 2185

原创 ftp传文件脚本

#######################################################################################营收全业务稽核Ftp脚本(日志文件为/usr1/bb/bbwh/lin/JHFtplog)                                                   #################

2014-06-06 13:01:23 475

原创 查看Oracle当前用户下的(表视图,同义词...)

查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)    0、表空间  SQL>select username,default_tablespace from user_users;  查看当前用户的角色  SQL>select * from user_role_privs;  查看当前用户的系统权限和表级权限  SQL>select * from

2014-06-06 13:01:21 24676

原创 shell编程范例之字符串操作

http://blog.csdn.net/needle2/archive/2010/03/30/5432925.aspx 管理员在2009年8月13日编辑了该文章文章。 --> -->

2014-06-06 13:01:19 367

原创 0403-027 The parameter list is too long

rm 删除文件报 删除文件报 0403-027 The parameter list is too long解决方法:find . -exec rm {} \;ls -l |awk '{print $9}'|xargs rm 管理员在2009年8月13日编辑了该文章文章。 -->

2014-06-06 13:01:17 480

原创 嵌套模板的使用

Embed Templates(嵌入式模版)和Derive Templates(基模板) 每当你使用一个普通的类的时候,你也可以在其中使用一个STL类。它是可以被嵌入的: class CParam { string name; string unit; vector vecData; }; 或者将它作为一个基类: class CParam : public vector { string na

2014-06-06 13:01:15 800

原创 交叉编译时候怎么设置连接库的搜索路径

在unix下设置应用程序的RPATH:有三种方法,一种是编译时设置LD_RUN_PATH,但是如果php连接的时候使用的-rpath选项的话,LD_RUN_PATH设置会被覆盖;另一种则是设置CC='gcc -Wl,-rpath,/opt/scutech/...',但该设置应该只能添加一个路径,而不能覆盖其它路径;第三种方法是使用patchelf的工具(http://hydra.nixos.org

2014-06-06 13:01:12 1203

原创 shell 设置当前目录为脚本存放目录

#!/bin/shpath=`dirname $0` (`为键盘左上角,esc下面那个键的符号)cd $pathpwd 管理员在2009年8月13日编辑了该文章文章。 --> -->

2014-06-06 13:01:10 874

转载 TCP三次握手及四次挥手

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.    而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。 因此在这里详细解释一下这两个过程。

2014-06-04 11:09:33 358

转载 模板方法模式(Template Method Pattern)-c++实现

摘自 http://blog.csdn.net/rain_qingtian/article/details/11806495

2014-04-16 10:31:35 369

转载 C++设计模式之1-工厂模式(简单工厂模式-工厂方法模式-抽象工厂模式)

学习设计模式的转自 http://blog.csdn.net/gatieme/article/details/17952033

2014-04-12 22:10:18 671

原创 抽象工厂模式-- 学习笔记

学习工厂模式,根据自己的理解写了个抽象工厂模式的例子,如下

2014-04-12 16:00:43 445

转载 Shell脚本调试技术

Shell脚本调试技术

2011-01-17 14:56:00 226

一线架构师实践指南(温昱)

学习架构的书,可了解什么是架构,架构师具体要做些什么事情,如何做。

2014-06-15

敏捷开发手册

敏捷开发介绍,介绍了如何运用敏捷开发模型快速开发一个软件系统。

2014-06-15

TimesTen最佳实践

TimesTen最佳实践,全面介绍的TimesTen 的特性,编程接口

2012-04-27

dbx调试手册

dbx 调试手册,详细的介绍的dbx 的各种用法。很实用

2011-10-17

跟我一起写 Makefile.pdf

Makefile 写法的全面介绍,陈皓编写,介绍了关于Makefile的一切

2011-09-25

ORACLE__SQL语句教学

ORACLE__SQL语句教学, oracle 的sql语句教程,oracle的 sql函数等等

2010-11-21

com技术内幕--微软组件对象模型

com技术内幕--微软组件对象模型,杨秀章译,pdf

2009-05-20

空空如也

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

TA关注的人

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