自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ctthuangcheng

自学成才。。。。加油!

  • 博客(654)
  • 资源 (4)
  • 收藏
  • 关注

转载 ubuntu cpu频率控制

安装cpufrequtils:  sudo apt-get install cpufrequtils查看cpu:                 sudo cpufreq-info 设置cpu模式:          cpufreq-set -g {powersave, userspace, ondemand, conservative, performance} 对应于{最省电(最低频率),用户

2014-02-18 15:23:32 7662

转载 time,gettimeofday,clock_gettime

time()提供了秒级的精确度1、头文件 2、函数原型time_t time(time_t * timer) 函数返回从UTC1970-1-1 0:0:0开始到现在的秒数用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。#include #include int main(void){

2014-02-11 15:45:02 1834 1

转载 Linux之dmesg命令

功能说明:显示内核缓冲区系统控制信息的工具 ,比如系统在启动时的信息会写到/var/log/中。语  法:dmesg [-cn][-s ] 补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里,也可用cat /var/log/messages查看。参  数: -c  显

2014-01-14 20:05:11 2461

转载 Linux日志管理高级进阶:实例详解syslog

syslog已被许多日志函数采纳,它用在许多保护措施中,任何程序都可以通过syslog记录事件。syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。1、syslog简介syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的

2014-01-14 19:55:35 2098

转载 Linux下利用backtrace追踪函数调用堆栈以及定位段错误

一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。 在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于获取当前线程的调用堆栈,获取的信息将

2014-01-14 19:08:39 4767

转载 Linux下获取线程TID的方法——gettid()

如何获取进程的PID(process ID)?可以使用:#include   pid_t getpid(void);  通过查看头文件说明,可以得到更详细的信息:find /usr/include -name unistd.h    /usr/include/asm/unistd.h  /usr/include/bits/unistd.h  /usr/include/linux/unistd.h 

2014-01-14 18:20:14 3389

转载 Linux proc/pid/task/tid/stat文件详解

[root@localhost ~]# cat /proc/6873/stat6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56 4294967295 134512640 134513720 3215579040 0 2097798 0 0 0 0 0

2014-01-10 18:17:34 13696

原创 微软Telnet的回显功能开启

win7和XP系统默认telnet的回显功能是关闭的。启用telnet回显功能:(1)首先进入命令行界面:输入telnet(2)进入Microsoft Telnet>命令提示符下,输入:set ?(3)接下来输入:set localecho(4)系统会提示本地回显启用,然后输入命令:quit但是,对于有些版本的系统,即使按上述作法操作,仍然无法达到目的。这是系统中telnet的一个缺陷。可以参照下

2014-01-02 12:55:25 3042

转载 System startup files

System startup filesWhen you log in, the shell defines your user environment after reading the initialization files that you have set up. The characteristics of your user environment are defined by th

2013-12-06 17:27:01 1635

原创 linux下的环境变量

环境变量有时候要查找,但是经常忘记有哪些文件,现在做一个总结:                               /etc/profile                此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置/etc/bashrc为每一个运行bash shell的用户执行此文件.当bash

2013-12-06 16:59:17 2398

转载 Makefile自动生成

automake/autoconf入门作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样

2013-12-05 15:52:22 2324

原创 make、make clean、make install、make uninstall、make dist、make distcheck和make distclean

Makefile在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:make根据Makefile编译源代码,连接,生成目标文件,可执行文件。make clean清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。make install将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。make uni

2013-12-05 11:40:54 5682 1

原创 Eclipse开发C/C++ 安装配置

1.       jdk环境配置2.       eclipse 下载3.       MinGW 下载安装4.       编写Hello Wordjdk环境配置环境配置我就不多说了,网上一堆例子。只要在cmd 中运行java –version 能显示版本等信息说明安装成功。eclipse 下载         eclipse要编译c/c++只需要安装CDT插件。eclipse各种版本目录:ht

2013-11-27 00:22:06 2988

原创 没有文件扩展“.js”的脚本引擎问题解决

安装MinGW的时候提示没有文件扩展“.js”的脚本引擎。    原因:系统安装Dreamwear、UltraEdit、EditPlus后修改了.js文件的默认打开方式。当想直接执行js脚本时就会出现此错误。    解决办法:打开注册表编辑器,定位[HKEY_CLASSES_ROOT.js]这一项,双击默认值将其改为“JSFile”即可。如图所示:    在运行中输入“regedit”进入注册表

2013-11-25 21:15:37 8357

转载 Linux查看硬件信息以及驱动设备的命令

用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)查看CPU信息:cat /proc/cpuinfo查看板卡信息:cat /proc/pci查看PCI信息:lspci (相比cat /proc/pci更直观)查看内存信息:cat /proc/meminfo查看USB设备:cat /proc/bus/usb/devices查看交换分区信息: cat

2013-11-13 14:13:44 7382

转载 Linux目录架构详解

Linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”,亲爱的读者,您都了解这些目录的含义吗?    ls -l / 遍历文件系统  本文将引领您浏览Linux的目录架构,并解释每个重要目录的含义。  / - Root  通常称为根分区。所有的文件和目录皆由此开始。只有root用

2013-11-13 14:13:15 1662

转载 23种设计模式彩图

from:http://www.chinasb.org/archives/2011/09/3768.shtml

2013-11-12 09:20:53 2726 2

原创 ACE在Linux下编译安装

下载地址: http://download.dre.vanderbilt.edu/ACE版本:ACE-6.2.2.tar.bz2下载完成后解压路径为:/root/ACE/ACE_wrappers设置环境变量:    vi .bashrc,添加的内容为:export ACE_ROOT=/root/ACE/ACE_wrappersexport MPC_ROOT=$ACE_ROOT/MPCexpor

2013-11-06 13:55:08 3376

转载 void及void指针含义的深刻解析

PS :  很久没有做C语言开发了,很多C语言的基本功都忘记了,下面是转载的void及void指针含义的深刻解析。void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不

2013-11-01 15:07:20 1690

转载 qsort函数应用大全

七种qsort排序方法  一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序(同int类型) char wo

2013-10-23 14:33:01 1908

原创 Effective C++ ——模板和泛型编程

条款41:了解隐式接口和编译器多态       以public继承的类,

2013-08-25 16:12:47 1617

原创 Effective C++ ——继承与面向对象设计

条款32:确定你的public继承塑模出is-a关系       以public继承的类,其父类的所有的性质都应该使用与子类,任何需要父类的地方都应该能用子类来代替,任何子类类型的对象也同时是父类的:class Person{...};class Student : public Person{...};void eat(const Person& p);void study(const S

2013-08-25 03:00:46 1622

原创 Effective C++ ——实现

条款26:尽可能延后变量定义式的出现时间       当你定义一个变量的时候就要保证这个变量能够在程序中使用到,不要定义无意义的变量,这样就要求我们最好是在变量使用到的时候才做定义,因为如果一个变量定义了却不使用可能会造成效率上的降低,毕竟很多变量的构建是要调用对应的构造函数和析构函数的,考虑下面的例子:std::string setName(std::string& name){ string

2013-08-25 01:36:13 1551

原创 Effective C++ ——设计与声明

条款18:让接口更容易的被使用,不易误用       接口设计主要是给应用接口的人使用的,他们可能不是接口的设计者,这样作为接口的设计者就要对接口的定义更加易懂,让使用者不宜发生误用,例如对于一个时间类:class Date{public: Data(int month, int day, int year){ .... }};       在应用Date类的时候,对

2013-08-25 01:04:06 1501

原创 Effective C++ ——资源管理

条款13:以对象来管理资源       在C++中我们经常会涉及到资源的申请与申请,一般都是由关键字new 和 delete来操作的,两者都是成对存在的,缺一不可,否则会出现意想不到的问题,例如:class Investment{.....};Investment* pinv = createInvestment();       我们在使用完后要动态的释放掉pinv所指向的资源,例如在下面的函

2013-08-24 18:54:15 1717 1

原创 Effective C++ ——构造/析构/赋值运算符

条款五:了解C++默认编写并调用那些函数        是否处在空的类?       假设定义类为class Empty{};当C++编译器处理过后会变成如下的形式:class Empty{ Empty(){} ~Empty(){} Empty& operator=(const Empty& rhs){.....} Empty(const Empty& rhs){.....}}

2013-08-24 17:33:07 2853

原创 大数相加

基本思路:字符串反转、字符变数字、位运算、反序输出#include#include#define Max 101void print(char sum[]);void bigNumAdd(char a[],char b[],char sum[]);int main(){ char a[Max]; char b[Max]; char sum[Max]; gets(a); get

2013-08-12 21:10:02 1307

转载 Linux音频编程指南

一、数字音频       音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。       数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始声音的重现,实现这一步骤的设备常被称为模/数转换器(A/D)。A/D转换器以每秒钟上万次的速率对声波进行采样,每个采样点都记

2013-08-12 14:38:41 1758

转载 理解 Linux 的硬链接与软链接

Linux 的文件与目录       现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于

2013-08-12 14:02:11 2624

转载 一个 Linux 上分析死锁的简单方法

简介       死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一

2013-08-12 11:20:06 2115

原创 char能表示(-128~127)

char 的取值范围是 -128 ~127       由于-128的原码用8位无法表示,所以必须扩展到16位去表示,然后对16位的原码计算出16位的反码和补码,最后对16位的补码作低8位的截断,截断的低8位的值就是-128的补码了。// 8位所能表示的 原码 的范围-127到+127// 8位所能表示的 反码 的范围-127到+127// 8位所能表示的 补码 的范围-128到+127

2013-08-04 21:19:25 2007 1

转载 UNIX网络编程——ioctl 函数的用法详解

1.介绍       Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口。并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现。2.相关结构体与相关函数#include int ioctl(int d,int request,....);参数:d-文件描述

2013-08-04 15:47:31 4729

转载 UNIX网络编程——原始套接字(dos攻击)

原始套接字(SOCK_RAW)。应用原始套接字,我们可以编写出由TCP和UDP套接字不能够实现的功能。       注意原始套接字只能够由有 root权限的人创建。       可以参考前面的博客UNIX网络编程——原始套接字的魔力【上】>>。/******************** DOS.c *****************/#include #inclu

2013-08-04 14:51:04 1855

转载 UNIX网络编程——尝试探索基于Linux C的网卡抓包过程

其实想探究网卡抓包问题已经有好久了。前几天找了时间算是基本上了解了那部分的一些基本东西,在这里只是赘述罢了。抓包首先便要知道经过网卡的数据其实都是通过底层的链路层(MAC),在Linux系统中我们获取网卡的数据流量其实是直接从链路层收发数据帧。至于如何进行TCP/UDP连接本文就不再赘述(之前的一段关于web server的程序已经大概说明),直接从最关键的原始套接字( raw socket)开始

2013-08-04 14:09:53 3223

转载 UNIX网络编程——揭开网络编程常见API的面纱【下】

Linux网络编程数据收发的API流程分析       只要把数据在协议栈中的流动线路和脉络弄清楚了,关于协议栈的实现部分,理解起来就轻松多了。在网络编程章节的数据接收过程中,我们主要介绍过read()、recv()、recvfrom()还有一个recvmsg()没介绍到,今天我们就来看一下这几个API函数到底有什么差别。 数据接收       在接收数据的过程,主要分两个阶段:BOTTOM-HA

2013-08-04 13:47:20 1727

转载 UNIX网络编程——揭开网络编程常见API的面纱【上】

Linux网络编程API函数初步剖析       今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。       1、socket(family,type,protocol)       当我们在开发网络应用程序时,使用该系统调用来创建一个套接字。该API所做的工作如下所示:

2013-08-04 13:33:31 1969

转载 UNIX网络编程——原始套接字的魔力【续】

如何从链路层直接发送数据帧       上一篇里面提到的是从链路层“收发”数据,该篇是从链路层发送数据帧。       上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑定到本地一个接口上,然后该套接字就只接收从该接口收上来的对应的数据包。今天我们用原始套接字来手工实现链路层ARP报文的发送和接收,以便大家对原始套接字有更深刻的掌握和理解。       ARP全称

2013-08-04 03:33:41 2708

转载 UNIX网络编程——原始套接字的魔力【下】

可以接收链路层MAC帧的原始套接字       前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IPPROTO_IP,这样会让系统疑惑,不知道该用什么协议来伺候你了。       今天我们介绍原始套接字的另一种用法:直接从

2013-08-04 01:33:49 2678

转载 UNIX网络编程——原始套接字的魔力【上】

基于原始套接字编程       在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证:                   也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸

2013-08-03 22:38:29 2799 1

原创 UNIX网络编程——原始套接字SOCK_RAW

实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(SOCK_STREAM)和数据包式套接字(SOCK_DGRAM)。而这些数据包都是由系统提供的协议栈实现,用户只需要填充应用层报文即可,由系统完成底层报文头的填充并发送。然而在某些情况下需要执行更底层的操作,比如修改报文头、避开系统协议栈等。这个时候就需要使用其他的方式来实现。一 原始套接字

2013-08-03 18:08:49 6328

gdb调试程序

gdb调试

2013-05-29

gdb调试示例

gdb示例

2013-05-29

空空如也

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

TA关注的人

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