编程
文章平均质量分 77
martin2350
这个作者很懒,什么都没留下…
展开
-
二维数组指针
概括的说,指针其实就是可变数组的首地址,说是可变数组,是 指其包含内容的数量的可变的,并且是可动态申请和释放的,从而充 分节约宝贵的内存资源。我一向喜欢一维数组,除非万不得已,我一 般是不用二维数组的,多维的则更是很少涉足了。因为一维简单,容 易理解,而用指针指向的多维数组就具有相当的复杂性了,也因此更 具有讨论的必要。 闲话少说,这里我就以三个二维数组的比较来展开转载 2012-03-14 22:06:44 · 259 阅读 · 0 评论 -
Thinkphp常用系统变量指导
Thinkphp常用系统变量指导除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。系统变量:包括server、session、post、get、request、cookie 一、thinkphp变量的定义规转载 2012-11-07 17:24:13 · 591 阅读 · 0 评论 -
使用PHP处理POST上传时$_FILES数组为何为空
在做一个简单的表单上传测试时,服务端的php脚本中,$_FILES数组为空;这样就不能获取从浏览器上传的信息.什么原因呢? 通过Google,找到下面这个web: php上传文件$_FILES数组为空的解决办法 在测试时遇到的情况,属于文中描述的第一种原因,即:上传文件的表单中未设置属性 enctype="multipart/for转载 2012-11-10 08:04:12 · 3374 阅读 · 0 评论 -
netlink socket编程实例解析
开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息相关的代码才将其安排在内核中。其它程序,比如GUI,管理以及控制部分的代码,一般都会作为用户态程序。在linux系统中,把系统的某个特性分割成在内核中和在用户空间中分别实现一部分的做法是很常见的(比如linux系统的防火墙就分成了内核态的Netfilter和用户态的iptables)。然而,内核程序与用户态的程序又是怎样行通讯转载 2012-12-26 16:01:39 · 942 阅读 · 0 评论 -
LINUX netlink机制
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_USERSOCK),防火转载 2012-12-26 15:59:19 · 542 阅读 · 0 评论 -
linux namespace
Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。要创建新的Namespace,只需要在调用clone时指定相应的flag。Linux Namespaces机制为实现基于容器的虚拟化技术提供了很好的基础,LXC(Linux conta转载 2013-01-25 17:18:06 · 1104 阅读 · 0 评论 -
虚拟网卡 TUN/TAP 驱动程序设计原理
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap转载 2013-03-01 15:51:10 · 539 阅读 · 0 评论 -
Linux的TUN/TAP编程
TUN/TAP虚拟网络设备为用户空间程序提供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支持TUN/TAP虚拟网络设备,其他UNIX也是支持的,他们之间只有少许差别。原理简介TUN/TAP 虚拟网络设备的原理比较简单,他在Linux内核中添加了一个TUN/TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备转载 2013-03-01 15:47:36 · 600 阅读 · 0 评论 -
自动生成Linux下Makefile全攻略(上)
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序转载 2013-03-20 22:42:22 · 526 阅读 · 0 评论 -
自动生成Linux下Makefile全攻略(下)
下面再来看看多个源文件的例子。 如何写用code1.c, code2.c生成 prog1的configure.in和Makefile.am。首先建立一个项目文件夹testproj。在testproj下建立dir1目录。 [kang@node16 kang]$ mkdir testproj [kang@node16 kang]$ mkdir dir1转载 2013-03-20 22:43:42 · 644 阅读 · 0 评论 -
VS2010 Boost编译安装
1.下载安装包boost 1_46_0 http://www.boost.org/users/news/version_1_46_0 选择下载 windows 或 unix 版本2.解压缩到D:\boost 目录下3.编译bjam (1)从vs2010的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio转载 2012-11-06 11:10:15 · 545 阅读 · 0 评论 -
VC++2010下编译STLport,Boost
最近在想向Boost转移,努力掌握Boost代码的过程中,STLport版本:5.2.1Boost版本:1.4.6.1 (1.4.7.0,1.4.9.0也OK)编译器Visual Studio2010STLPort的编译,选择Microsoft Visual Studio 20010下面的Visual Studio Tools下面的命令行环境编译工具,Visual转载 2012-11-05 22:17:36 · 1045 阅读 · 1 评论 -
vs2012-vs2010使用stlport库的配置
在编译完成stlport后,就打开vs2012(本人已经安装10及12,打sp1补丁)配置stlport库:由于要经常使用此库,所以建议在全局属性配置比较好点目录配置:包含目录与库目录方法:菜单栏->视图-属性管理-“Debug|win32-Microsoft.Cpp.Win32.user”属性-VC++目录——目录配置包含目录:D:\OpenSou转载 2012-11-05 22:18:52 · 1249 阅读 · 0 评论 -
写程序测试本机Cache的大小
今天写了一个程序简单的测试一下自己机器cache的大小 ,程序 如下 : #include 2 #include 3 #include 4 #include 5 #include 6 7 #define MINBYTES (1 8 #define MAXBYTES (1 9 #define MAXSTRIDE 16 10转载 2012-03-12 22:15:22 · 3822 阅读 · 2 评论 -
异步消息的传递-回调机制
1 什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的转载 2012-05-14 13:50:01 · 314 阅读 · 0 评论 -
gtk+2.0之treeview
Preface 想要使用GtkTreeView實在不是一件"簡單"的事。我在這把簡單特意括了起來,是因為要提醒您一下。我並不是想要暗示您聯想到他是很難的, 在這裡我選擇了另一種相對的意義 -- 繁複。步驟多了一點,但概念上並不算難以理解。也許您已經領教過落落長的GTK+ 2.0 Tree View Tutorial(Tim-Philipp M?ler, 2005)作者是希望他能涵蓋大部转载 2012-05-19 11:41:32 · 1287 阅读 · 0 评论 -
treeview 学习心得(一) 简单示例
曾经做过一段时间网页开发,经常用到微软的treeview控件。创建treeview控件,连接数据库,设置各种属性达到漂亮的效果,均可在清脆的鼠标单击声轻松完成,也是我对treeview最初的印象。然而GTK的treeview控件似乎不那么简单了,即使你用glade完成界面布局,仍然有很多东西需要自己动手去写。国内关于gtk treeview资料相当匮乏,甚至 连GTK+2.0中文教程(网络版)都跳转载 2012-05-19 11:42:59 · 901 阅读 · 0 评论 -
gtk带glade的实例
这个实例是gtk与glade结合的例子,用glade布局界面,c程序实现treeview glade布局图如下 treeview_glade.c源程序如下#include #include #include #include GladeXML *xml; //创建treev转载 2012-05-19 11:44:12 · 1438 阅读 · 0 评论 -
《用Glade2开发图形用户界面》控件简解
控件的更多细节接下来是一些常用的控件列表,及它们所用的一些gtk函数。没有列出函数 参数,也没有列出每个控件的所有函数。如果需要这些信息请到这个教程的 库部分。注意下面并不是控件的详细列表。 在Glade没有包含的库里有很多可用的控件。还有一些Gtk+控件比较容易理解 (如垂直和水平分隔线)也没有列在这里。Gtk+基本控件Image 名称 目标 函数及参考gtk win转载 2012-05-19 11:47:20 · 2426 阅读 · 0 评论 -
container_of()宏
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the转载 2012-07-10 22:19:00 · 335 阅读 · 0 评论 -
同步/异步与阻塞/非阻塞的区别
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的转载 2012-10-13 14:16:51 · 331 阅读 · 0 评论 -
vs2010 使用STLport-5.2.1
下载地址: http://sourceforge.net/projects/stlport/ 下载后解压,假设目录为:D:\STLport,接下来就该编译它了:1.在开始菜单中找到VC 命令行工具,接下来切换到D:\STLport\STLport-5.2.1目录。2.可以运行configure –help看看编译选项,用MSVC编译器编译的话,输入以下命令:c转载 2012-11-04 15:15:09 · 787 阅读 · 0 评论 -
Linux .a文件.o文件.la文件.lo文件和.so文件
.o 就相当于Windows里的obj文件 .a 是好多个.o合在一起,用于静态连接 .so 是shared object,用于动态连接的,和dll差不多 .o文件是链接文件,.a是静态库文件,靠.o文件生成,作为一个库为外部程序提供函数,接口。生成.o文件:gcc -c test.o test.c生成.a文件:ar cqs test转载 2013-06-30 21:34:01 · 2294 阅读 · 0 评论