自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (8)
  • 收藏
  • 关注

转载 dlopen 与dlsym

Dynamically Loaded (DL) 在读HAL相关源码的时候发现这两个函数  简而言之,共享对象通过dlopen动态打开动态库的加载完成后,返回一个句柄,通过dlsym定位到你需要执行的函数指针然后可以在程序中使用   dlopen -- open a dynamically linked library   dlsym -- get the address of a sy

2014-12-30 15:16:58 588

原创 va_start和va_end使用详解

本文主要介绍va_start和va_end的使用及原理。   在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。   介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理:  1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void foo(

2014-12-29 18:10:59 569

转载 数据结构:循环队列(C语言实现)

生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是用链表来实现队列的。这里讲的是循环队列,首先我们必须明白下面几个问题 一、循环队列的基础知识

2014-12-12 14:30:08 1076 1

原创 libcurl 使用的几个注意事项

0. 为使用的curl url 添加确定的协议头 原文: If you specify URL without protocol:// prefix, curl will attempt to guess what protocol you might want. It will then default to HTTP but try other protocols based on of

2014-12-11 11:20:48 904

转载 使用libcurl进行文件、数据上传

好了,现在来讲一讲curl的文件上传,对于curl来讲,其实它要完成的任务就是构建一个multipart/formdata HTTP POST请求。类似于往multipart form表单中添加type为file或者text的input item一样,curl也需要我们构造表单中的input item,curl_formadd函数可以帮助我们完成这个任务,它即可以添加普通的name-value s

2014-12-09 15:32:24 2062

转载 关于typedef的用法总结

不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。 用途一: 定义一种类型的别

2014-12-09 11:57:59 521

转载 typedef函数指针用法

1.简单的函数指针的应用 形式1:返回类型(*函数名)(参数表)  [cpp] view plaincopy char (*pFun)(int);    char glFun(int a){ return;}    void main()    {        pFun = glFun;        (*pFun)(2);

2014-12-08 19:59:32 473

转载 非阻塞情况下connect产生EINPROGRESS错误

今天在开发游戏客户端测试程序时,由于出现很多客户端,经过connect成功后,代码卡在recv系统调用中,后来发现可能是由于socket默认是阻塞模式,所以会令很多客户端 链接处于链接却不能传输数据状态。 后来修改socket为非阻塞模式,但在connect的时候,发现返回值为-1,刚开始以为是connect出现错误,但在服务器上看到了链接是ESTABLISED状态。证明链

2014-12-08 17:40:42 2939

原创 select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout);    所在的头文件为:#include 和#include

2014-12-08 17:15:37 753

转载 用GDB调试程序(一)

用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能:   

2014-12-05 18:13:39 516

转载 警惕UNIX下的LD_PRELOAD环境变量

警惕UNIX下的LD_PRELOAD环境变量   陈皓   前言          也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。   在开始讲述为什么要当心LD_PRELOAD环境变量之前,请让我先说明一下程序的链接。所谓链接,也就是说编

2014-12-05 17:40:41 547

转载 SIGPIPE信号

使用libevent编写websocket服务端时遇到了一个问题: 浏览器与服务端建立连接后,若刷新或关闭浏览器窗口(未监听相应事件并处理),服务端无法得知连接断开,按理说,这种情况属于client异常终止,跟拔网线的情况类似。这种情况下,服务端不知情,仍保留此连接,仍按照既定逻辑向client写数据,写了两次后,服务端程序终止(多次测试,均是第2次后终止),不是崩溃,是异常终止,非常不解。

2014-12-04 11:32:39 550

转载 linux线程池的实现

什么是线程池 应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每个进程提供了一个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成时,线程池中的辅助线程会执行回调函数。线程池中的线程由系统管理,程序员不需要费力于线程管理,可以集中精

2014-12-02 14:49:59 524

source insight 4 完美破解

source insight 4 完美破解。用sourceinsight4.exe替换安装目录同名文件,在导入另一个文件则破解成功

2017-10-09

sublime 关闭更新

sublime 关闭更新。替换安装目录下的sublime_text

2015-05-27

sublime text3 中文输入插件

sublime text3 中文输入插件

2015-04-01

linux 线程池源码

linux 线程池源代码,全部封装好接口,只需一步创建,一步添加任务。有相应demo参考

2014-12-02

Wireless Tools

Wireless tools for Linux是一个Linux命令行工具包,wifi测试工具。最新的稳定版本的Wireless Tools是版本29

2014-10-22

扩展的system函数,支持变参(%d, %f, %c, %s)

扩展的system函数,支持变参(%d, %f, %c, %s)

2014-10-13

空空如也

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

TA关注的人

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