linux 获取函数堆栈

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <execinfo.h>#include <iostream>#include <exception>using namespace std;char** CallStack(int& num){   int nptrs;   #define SIZE 100   void *buffer[100];   char **strings;   nptrs = backtrace(buffer, SIZE);&
发布时间:2015-01-14 | 类别:编程相关 | 阅读:887 | 评论:0 | 标签:linux c

struct--iphdr -- IP头部

struct iphdr {#if defined(__LITTLE_ENDIAN_BITFIELD)    __u8    ihl:4,            version:4;#elif defined (__BIG_ENDIAN_BITFIELD)    __u8    version:4,            ihl:4;#else#error "Please fix <asm/byteorder.h>"#endif    __u8   &n
发布时间:2014-10-18 | 类别:编程相关 | 阅读:1161 | 评论:3 | 标签:iphdr c

c语言实现urlencode和urldecode

先看个例子:汉字 一 的UTF-8编码为0xE4 0xb8 0x 80我们在google里搜索一下“一”,地址栏显示为:可以看到url的字符串里有一个%E4%B8%80这就是encode之后的值。因此,encode的处理过程也很明显了。特别是传中文参数时,如果没有encode,很容易出错。至于为什么要这么传,就不知道了,今天,现来看下C语言如何实现url encode函数.首先是urlencode的编码规则,可以看这里,搜到一篇文章没有仔细研究,可能有不全的地方:http://hi.baidu.com/leejun_2005/item/9e0f4e4ba62cde0bc11613b5解码:/* * =======================================================
发布时间:2014-10-05 | 类别:编程相关 | 阅读:1249 | 评论:0 | 标签:c urlencode urldecode

C语言中的两种hash表的实现

1、用数组#include <stdio.h>#define N 4typedef int datatype;typedef struct{ datatype key;}Hretype;int LHashsearch(Hretype HT[N], datatype k){ int addr,i=0; addr = k % N; while(i<N && HT[addr].key != -1 && HT[addr].key != k) { i++; addr = (addr+1)%N; } if(i == N) return -1;  //表溢出 else return addr;}int LHinsert(Hretype HT[N], Hret
发布时间:2014-10-05 | 类别:编程相关 | 阅读:957 | 评论:0 | 标签:c hash hash表

c实现web服务器

客户端(浏览器)与web服务器之间的交互主要包含客户的请求和服务器的应答。请求和应答的格式在超文本传输协议(HTTP)中有定义。HTTP协议使用纯文本。例如:$telnet  www.ouc.edu.cn  80Trying 211.64.150.68...Connected to www.ouc.edu.cn(211.64.150.6Escape character is '^]'.GET /index.html HTTP/1.0HTTP/1.1  200  OKDate: Wed, 21 Jun 2006  08:26:04 GMTServer: Apache/2.0.54(Unix) DAV/2...............................
发布时间:2014-10-05 | 类别:编程相关 | 阅读:1447 | 评论:1 | 标签:c web http

Linux模拟鼠标和键盘事件

Linux 有自己的 input 子系统,可以统一管理鼠标和键盘事件。 基于输入子系统 实现的 uinput 可以方便的在用户空间模拟鼠标和键盘事件。 当然,也可以自己造轮子, 做一个字符设备接收用户输入,根据输入,投递 input 事件。 还有一种方式就是直接 往 evnent 里写入数据, 都可以达到控制鼠标键盘的功能。本篇文章就是演示直接写入 event 的方法。 linux/input.h中有定义,这个文件还定义了标准按键的编码等struct input_event { struct timeval time; //按键时间 __u16 type; //类型,在下面有定义 __u16 code; //要模拟成什么按键 __s
发布时间:2014-10-05 | 类别:编程相关 | 阅读:1059 | 评论:0 | 标签:c linux

c语言中区分系统的宏

#ifdef _WIN32 // note the underscore: without it, it's not msdn official!     // Windows (x64 and x86) #elif __unix__ // all unices     // Unix #elif __posix__     //&nbs
发布时间:2014-10-05 | 类别:编程相关 | 阅读:783 | 评论:0 | 标签:c

C语言字符串处理函数

void *memccpy (void *dest, const void *src, int c, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。void *memcpy (void *dest, const void *src, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。返回指针为dest的值。void *memchr (const void *s, int c, size_t n);在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。int memcmp (const void *s1,
发布时间:2014-10-05 | 类别:编程相关 | 阅读:826 | 评论:0 | 标签:c

公告

2014年10月4日创建

标签云

最近评论

友情链接