linux相关
文章平均质量分 68
代码完美人
这个作者很懒,什么都没留下…
展开
-
GDB调试学习(一)
用GDB调试程序(转)出处:http://blog.csdn.net/haoel?viewmode=contentsGDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺原创 2013-07-10 22:07:32 · 563 阅读 · 0 评论 -
GDB调试学习(二)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb5.1.1 Copyright2002 Free Software Foundation, Inc. GDB is freesoftware, c原创 2013-07-10 22:07:34 · 567 阅读 · 0 评论 -
Linux哈希表使用的简单程序
#include #define DATA_SIZE 256typedef struct _MY_HASH_NODE_{long unsigned lHashValue;char psValue[256];int nCount;}MyHashNode;unsigned long MyHash(const MyHashNode *ptNode){ returnptNod原创 2013-07-10 22:08:02 · 1170 阅读 · 0 评论 -
linux下mysql扩展,自定义函数实现(…
Adding a New User-DefinedFunction"The MySQL source distribution includes a filesql/udf_example.c that defines 5 new functions"下载mysql在目录中可看到sql/udf_example.c,我们可以参考。流程:编译自己的动态库=>创建函数首先建立一个简单的测试函原创 2013-07-10 22:08:29 · 1176 阅读 · 0 评论 -
数据机构快速排序之c语言实现
#if 01//selectSort && quickSortcomparison#include #include #include #include void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp;}int partition(int a[],原创 2013-07-10 22:08:33 · 757 阅读 · 0 评论 -
一个格式较好的log4cplus properties配置文件
log4cplus.appender.ALL_MSGS=log4cplus::RollingFileAppenderlog4cplus.appender.ALL_MSGS.MaxFileSize=100MBlog4cplus.appender.ALL_MSGS.MaxBackupIndex=10log4cplus.appender.ALL_MSGS.File=./log/thunder原创 2013-09-22 22:16:19 · 5517 阅读 · 0 评论 -
Why is the size of an empty class not zero in C++?
Why is the size of an empty class not zero in C++?Predict the output of following program? #includeusing namespace std;class Empty {};int main(){ cout << sizeof(Empty); return 0;}翻译 2014-11-17 11:21:41 · 852 阅读 · 0 评论 -
Linux栈空间及栈地址方向
写了个简单程序,可以让linux的栈空间耗尽,然后出现core dumped,即栈溢出代码如下:#include void overFlow(){ long i; printf("&i : %p\n",&i); overFlow();}int main(){ OverFlow();}原创 2015-02-10 18:21:20 · 5082 阅读 · 0 评论 -
选择排序和快速排序性能比较
这里为了不修改我之前的文章,重新贴一下之前的代码#if 01//selectSort && quickSort comparison#include #include #include #include #include #include #include void swap(int *a, int *b){ int temp = *a;原创 2015-02-11 19:39:29 · 1116 阅读 · 0 评论 -
公共的makefile, C/C++
makefile.mkCC=$(CXX)#ifndef NAME# NAME=$(notdir $(TARGET_DIR))#endifTARGET=$(TARGET_DIR)/$(NAME)CXXFLAGS = $(INC) $(LIB)ifdef DEBUG OBJ_DIR=.debug CFLAGS+= -原创 2013-08-28 23:26:47 · 788 阅读 · 0 评论 -
判断字符串是否UTF8, 支持最大6个字节的UTF8字符
#include #include #ifndef FALSEtypedef int8_t BOOL;#define TRUE 1#define FALSE 0#endiftypedef struct _UTF8_HEAD{ uint8_t countOf1; uint8_t head;}UTF8_HEAD;const sta原创 2015-09-01 11:10:59 · 2116 阅读 · 0 评论 -
vsnprintf长度
由于vsnprintf需要预先分派长度,所以并不能准确判断到底需要多长,这里通过首次分派1024来判断,若不够,后续继续分派,可得到格式化后的buffer和长度//Handle buffer length of vsnprintf#include #include #include #include typedef std::tr1::shared_ptr Stri原创 2015-10-30 14:33:26 · 2526 阅读 · 0 评论 -
linux socket源代码 可用 网上我没…
//server.c - a server, datagramsockets#include#include#include#include#include#include#include#include#include//the port users will be connecting to #define MYPORT 9989#define M原创 2013-07-10 22:07:26 · 655 阅读 · 0 评论 -
Linux下socket编程
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传原创 2013-07-10 22:07:20 · 561 阅读 · 0 评论 -
从linux提取文件内容进行分页,另…
首先是shell排序实现多列排序,这里添加竖线以作分割,如下文件test:a|gggg|4|7b|fff2|3|2c|gea0|6|12d|kkkg|4|11e|uity|6|4f|fger|1|3g|wabg|7|5h|zhag|8|7i|hang|3|3j|lang|2|15k|long|5|7$cat test |sed 's/|/ /g' |sort -k3,原创 2013-07-10 22:07:14 · 1665 阅读 · 0 评论 -
GDB调试学习(三)
四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clear clear 清除所有设置在函数上的停止点。 clear原创 2013-07-10 22:07:36 · 554 阅读 · 0 评论 -
GDB调试学习(五)
查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print/ 是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出原创 2013-07-10 22:07:41 · 486 阅读 · 0 评论 -
linux下SVN安装配置,eclipse提交…
今天安装了下linux下的SVN服务器,网上方法很麻烦,都不想看,我就自己本地作为服务器,实现我自己的版本管理,自己琢磨着怎么去使用 网上提到安装SVN服务器需要安装其他的东西,我用rpm -aq|grep查看,原来我系统自带,如$rpm -aq|grep apr $rpm -qa |grepneon 由于apache我安装过,现在需要安装SVN服务器,我喜欢跑到应用原创 2013-07-10 22:07:49 · 1300 阅读 · 0 评论 -
System V 信号量操作,进程间通信(…
//实现semWait, semPost封装#include #include #include #include #include #include #include #include union semun { int val; struct semid_ds *buf; ushort *a原创 2013-07-10 22:08:40 · 743 阅读 · 0 评论 -
linux下导入、导出mysql数据库命令
注意:-P为端口(请区分大小心),如-P13306(自定义的端口必须写),默认为3306;一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1、导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/local/mysql/bin/mysqldump -uroot -p abc >xxx.sql敲回车后会原创 2013-07-10 22:06:57 · 769 阅读 · 0 评论 -
linux shell常用快捷键
删除ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dlctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dhctrl + k 删除光标后面所有字符相当于VIM里d shift+$ctrl + u 删除光标前面所有字符相当于VIM里d shift+^ctrl + w 删除光标前一个单词相当于VIM里dbctr原创 2013-07-10 22:07:06 · 777 阅读 · 0 评论 -
GDB调试学习(七)
改变程序的执行——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。原创 2013-07-10 22:07:45 · 554 阅读 · 0 评论 -
简单socket服务器客户端
#include #include #include #include #include #include #include #include #include #define SERVPORT 8088#define SERVER#ifdef SERVERint main(void) {int sockfd, client_sockfd;struct sock原创 2013-07-10 22:08:24 · 625 阅读 · 0 评论 -
System V 信号量操作,进程间通信(…
首先说明下System Vsemaphore和Posix semaphore的区别 二者是信号量的两组程序设计接口函数。POSIX semaphore来源于POSIX技术规范的实时扩展方案(POSIX Realtime Extension),常用于线程;System V semaphore,常用于进程的同步。这两者非常相近,但它们使用的函数调用各不相同。前一种的头文件为semapho原创 2013-07-10 22:08:37 · 695 阅读 · 0 评论 -
GDB调试学习(四)
查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印当前的函数调用栈的所有信息。如:原创 2013-07-10 22:07:39 · 516 阅读 · 0 评论 -
GDB调试学习(六)
七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set printaddress on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: (gdb) f #0 set_quotes (lq=0x34c原创 2013-07-10 22:07:43 · 628 阅读 · 0 评论 -
TCP校验和算法
关于二进制反码求和,并非完全校验。也就是说假如只有一个字节有变,那么校验和一定能正确校验,但如果多个字节变动,而且变动的字节之和等于未变动的和,则将会被当作校验成功。uint16_t checksum(uint16_t *buffer, int size){ unsigned long cksum = 0; while (size > 1) {原创 2015-10-30 14:23:05 · 1413 阅读 · 0 评论