- 博客(76)
- 资源 (14)
- 收藏
- 关注
转载 结构体最后的长度为0或1数组的作用(转载)
其实很早在看LINUX下就看到这个东西,后来在MFC内存池里同样也看到了类似的东西,还依照MFC写过一个类似的小内存池,(MFC用的是return this + 1)后来在李先静的《系统程序员成长计划》里看到了类似的定义,于是心里想着总结一下,结果发现网上已经有牛人总结的很好了,于是乎就转了过来,谢谢你们的分享,这是我前进的动力!同时,需要引起注意的:ISO/IEC 9899-1999里面
2015-10-16 20:20:58
1972
转载 php 上传图片保存到数据库例子
php 上传图片保存到数据库例子php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据
2015-06-17 16:18:57
1025
转载 php 发送与接收流文件
php 发送与接收流文件sendStreamFile.php 把文件以流的形式发送receiveStreamFile.php 接收流文件并保存到本地sendStreamFile.php<?php/** php 发送流文件* @param String $url 接收的路径* @param String $file 要发送的
2015-06-17 16:17:38
865
转载 PHP中读取文件的几个方法
整理了一下PHP中读取文件的几个方法,方便以后查阅。1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件中读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节
2015-06-17 16:12:12
1103
转载 MySQL/InnoDB锁机制
显式加锁select ... lock in share mode:加 S 锁 select ... for update:加 X 锁 MySQL快照读和当前读在一个支持MVCC并发控制的系统中,哪些读操作是快照读?哪些操作又是当前读呢?以MySQL InnoDB为例:快照读:简单的select操作,属于快照读,不加锁。(当然,也有例外,下面
2015-06-05 14:24:03
1009
转载 mysql二级索引
mysql中每个表都有一个聚簇索引(clustered index ),除此之外的表上的每个非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引。如果您的表上定义有主键,该主键索引是聚集索引。如果你不定义为您的表的主键时,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作
2015-06-05 14:12:01
5252
1
转载 MySQL事务隔离级别详解
MySQL事务隔离级别详解 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级
2015-06-05 13:51:57
662
1
转载 Innodb事务隔离级别
一、事务隔离级别ANSI/ISO SQL标准定义了4中事务隔离级别:未提交读(read uncommitted),提交读(read committed),重复读(repeatable read),串行读(serializable)。对于不同的事务,采用不同的隔离级别分别有不同的结果。不同的隔离级别有不同的现象。主要有下面3种现在:1、脏读(dirty read):一个事务可
2015-06-05 11:23:57
557
转载 mysql事务和锁InnoDB
背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是
2015-06-05 10:03:34
720
转载 mysql数据库锁机制
前言为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机制简介数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问
2015-06-05 09:58:42
668
转载 Linux C语言调用C++动态链接库-改
如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明, 那么你如何用c调用呢,别着急,本文通过一个小小的例子,让你能够很爽的搞定. 一、编译生成一个供测试使用的C++动态库:链接库头文件://head.hclass A{ public: A(); virtual ~A(); int
2015-04-27 17:39:55
3965
转载 ubuntu12.04安装imageMagick扩展
在ubuntu 12.04系统下安装 imageMagick扩展。1. 打开终端 terminal2. 如果没有安装 pear请先执行以下命令安装 : sudo apt-get install php-pear php5-dev3. 安装 ImageMagick : sudo apt-get install imagemagick libmagickwand-dev4.
2015-04-03 14:28:31
3473
原创 php-screw php代码加密工具用法(整理)
1、进入http://sourceforge.net/projects/php-screw/下载最新版本php_screw-1.5.tar.gz解压安装:#tar zxf php_screw-1.5.tar.gz#cd php_screw-1.5#vi php_screw.h将#define PM9SCREW “\tPM9SCREW\t”#define PM9SCREW
2014-12-11 20:36:35
8404
原创 腾讯信鸽推送"CURL ERROR:name lookup timed out"错误提示解决方法
系统环境:ubuntu12.04服务端SDK版本:Xg-Push-SDK-PHP-1.1.2 使用官方php sdk demo包向app推送消息,偶尔会出现"CURL ERROR:name lookup timed out"的错误提示,严重影响推送质量。原因是本地系统DNS解析信鸽推送域名超时所致,解决方法是给域名解析文件hosts添加相应的域名IP映射,还能提高推送的执行速度。
2014-10-30 16:51:51
2954
转载 linux关于消息队列中消息的大小的限制
在消息队列中,例如函数msgsnd(int msqid, const void* msgp, size_t msgsz, int msgflg);这个函数调用的时候,msgsz最大只能为8192,也就是2的16次方。可以看出这里的msgsz大小限制在一个short型。超过这个大小就会出错——invalid argument。并不是其他人所说的只要msgsz是mtext的大小就不会出错,如果size
2014-06-27 14:50:54
17691
2
转载 C++new失败的处理
我们都知道,使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用到 new 上,那可就不一定正确了。我经常看到类似这样的代码: int* p = new int[SIZE]; if ( p == 0 ) // 检
2014-03-10 17:37:51
5241
转载 linux下编译QT出错:QMAKESPEC has not been set, so configuration cannot be deduced
如果编译时候出现错误:QMAKESPEC has not been set, so configuration cannot be deduced.Error processing project file: XXXXX.pro是QMAKESPEC变量没有设置好,在/root/.bash_profile里加入一行:export QMAKESPEC=/usr/local/qt-x11-o
2014-03-04 11:49:21
5329
转载 利用openssl加密解密tar包
将文件夹package打成tar包 package.tar.gz 并加密密码是 passwordtar czf – package | openssl des3 -salt -kpassword -out package.tar.gz加密的tar包只能在Linux上解密,无法在Windows上使用。解密tar包并且解压缩openssl des3 -d -k
2014-02-25 10:28:12
6807
转载 shm*()--共享内存操作函数
#include #include int shmget(key_t key, size_t size, int shmflg);key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_PRIVATE。 当key的取值为IPC_PRIVATE,则函数shmget()将
2013-09-11 21:31:46
2681
原创 16、交叉编译gtk+
16、交叉编译gtk+目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f 一、简介 GTK+ 是一种图形用户界面(GUI)工具包。也就是说,它是一个库(或者,实际上是若干个密切相关的库的集合),它支持创建基于 GUI 的应用程序。可以把 GTK+ 想像成一个工具包,从这个工具包中可以找到
2013-03-27 20:20:31
7961
2
原创 15、交叉编译pango
15、交叉编译pango目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f 一、简介Pango(Παν语)是一个开放源代码的自由函数库,用于高质量地渲染国际化的文字。Pango可以使用不同的后端字体,并提供了跨平台支持。 在与Cairo融合后,Pango可以完全进行文字处理和图形渲染。
2013-03-27 20:17:25
5895
3
原创 14、交叉编译cairo
14、交叉编译cairo目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f 一、简介 在信息领域中,cairo 是一个让用于提供矢量图形绘图的免费库,cairo 提供在多个背景下做 2-D 的绘图,高级的更可以使用硬件加速功能。 二、下载cairo源码包 进入
2013-03-27 20:15:56
7341
2
原创 13、叉编译directfb
13、叉编译directfb目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f 一、简介 DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法
2013-03-27 20:13:41
2353
2
原创 12、交叉编译pixman
12、交叉编译pixman目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 pixman嵌入式图形库,很多开源软件都用到的,特别是如开发gtk这样的图形图像程序. 二、下载pixman源码包 进入http://cgit.freedesktop.org/p
2013-03-27 20:11:48
8417
原创 11、交叉编译tiff
11、交叉编译tiff目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 TIFF是最复杂的一种位图文件格式。TIFF是基于标记的文件格式,它广泛地应用于对图像质量要求较高的图像的存储与转换。由于它的结构灵活和包容性大,它已成为图像文件格式的一种标准,绝大多数图像系统都支持这种
2013-03-27 20:10:28
2437
原创 10、交叉编译fontconfig
10、交叉编译fontconfig目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 Fontconfig是字体相关的计算机程序库,用于配置、定制全系统的字体,或将字体提供给应用程序使用。 二、下载fongconfig源码包 进入http://www.fr
2013-03-27 20:08:40
7128
1
原创 9、交叉编译libxml2
9、交叉编译libxml2目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 Libxml2 是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、
2013-03-27 20:07:07
4778
2
原创 8、交叉编译libtool
8、交叉编译libtool目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。二、下载libtool源码包 进入http://mirrors.ustc.edu.cn/
2013-03-27 20:05:49
4424
原创 7、交叉编译freetype
7、交叉编译freetype目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Wind
2013-03-27 20:04:16
4711
原创 6、交叉编译libjpeg-7
6、交叉编译libjpeg-7目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 jpegsrc是linux下的jpeg解码库,可以用于JPEG文件的解码。二、下载jpegsrc源码包 进入http://www.ijg.org/files/下载一个jpeg工具
2013-03-27 20:02:39
2247
原创 5、交叉编译libpng
5、交叉编译libpng目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 libpng 软件包包含 libpng 库.这些库被其他程序用于读写png文件。 二、下载libpng源码包 进入http://sourceforge.net/projects/l
2013-03-27 19:59:38
7371
1
原创 4、交叉编译atk
4、交叉编译atk目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f 一、简介 atk库是Linux下一个图形开发包。 二、下载atk源码包 进入http://ftp.gnome.org/pub/gnome/sources/atk/下载一个atk稳定版本源码包
2013-03-27 19:57:23
3097
4
原创 3、交叉编译pkg-config
3、交叉编译pkg-config目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介pkg-config是一个提供从源代码中编译软件时查询已安装的库时使用的统一接口的计算机软件,它向用户向程序提供相应的库路径、版本号等信息。 二、下载pkg-config源码包 进
2013-03-27 19:55:06
6691
2
原创 2、交叉编译glib
2、交叉编译glib目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 Glib库是Linux平台下最常用的C语言函数库,它是GTK+和Gnome的基础,提供基本的容器、算法、对象系统、OSAPI的适配器等。二、下载Glib源码包 进入http://ftp.g
2013-03-27 19:51:26
7123
5
原创 1、交叉编译zlib
1、交叉编译zlib目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f一、简介 zlib是提供数据压缩用的函式库,使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。二、下载zlib源码包 进入ht
2013-03-27 19:49:02
8374
1
原创 0、交叉编译gtk+库(序)
0、交叉编译gtk+库(序)目标平台:Loongson-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f 一、gtk+介绍: GTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形用户界面(GUI)工具包。最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/
2013-03-27 19:35:41
3423
原创 Linux下MD5移植与编程
目标平台:LOONGSON-1B开发板内核:Linux 3.0编译平台:ubuntu10.04交叉工具链:gcc-3.4.6-2f备注:以下操作均在root用户下进行简介本文旨在为MD5移植以及linux C下MD5加密编程提供技术文档。MD5(Message Digest Algorithm 5:消息摘要算法第五版),为计算机安全领域广泛使用的一种散列函数,用于提
2012-05-18 19:27:47
5268
转载 基于UDP协议的网络编程
下图是典型的UDP客户端/服务器通讯过程[下图出自《Unix网络编程》]以下是简单的UDP服务器和客户端程序,服务端接收来自客户端的字符,转成大写后返送给客户端。备注:程序在ubuntu10.04经过编译验证,可直接使用。服务端程序:/* server.c */#include #include #include #include #include #i
2012-05-16 15:41:44
1217
1
转载 Linux C 堆与栈的区别
一、预备知识——程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)
2012-05-06 00:54:32
8149
原创 Linux时间函数
系统环境:ubuntu10.04简介本文旨在为了解Linux各种时间类型与时间函数提供技术文档。1、Linux下常用时间类型Linux下常用时间类型有四种:time_t、struct tm、struct timeval、struct timespec1.1 time_t时间类型time_t类型在time.h中定义:#ifndef __TIME_T#def
2012-04-28 22:48:57
55226
7
linux的多线程编程的高效开发经验
2012-05-18
UNIX环境高级编程
2011-10-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人