- 博客(30)
- 资源 (2)
- 收藏
- 关注
转载 snprintf函数用法
int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n 的话,将不会溢出。函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。Result1(推荐的用法)#include
2014-07-29 13:50:27 689
转载 std::copy
如果要把一个序列(sequence)拷贝到一个容器(container)中去,通常用std::copy算法,代码如下:std::copy(start, end,std::back_inserter(container)); 这里,start和end是输入序列(假设有N各元素)的迭代器(iterator),container是一个容器,该容器的接口包含函数push_back。假设contai
2014-07-22 11:02:32 1031
转载 U-BOOT之一:BootLoader 的概念与功能
U-BOOT之一:BootLoader 的概念与功能 ——转自《U-BOOT移植S3C2440完全手册》1.1嵌入式Linux 软件结构与分布一般情况下嵌入式Linux 系统中的软件主要分为以下几部分:1) 引导加载程序:其中包括内部ROM 中的固化启动代码和BootLoader 两部分。内部固化ROM 是厂家在芯片生产时候固
2014-07-21 17:18:32 2342
转载 u-boot的Makefile分析
U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。U-BOOT的下载地址: http://sourceforge.net/projects/u-boot我下载的是1.1.6版本,一开始在FTP上下载了一个次新版,结果编译失败。1.1.6是没问题的。u-boot源码结构 解压就可
2014-07-21 17:17:40 692
转载 Linux C 中字符串化操作符#
1 #include 2 3 #define dprint( expr ) printf( "%s = %d \n", #expr , expr) 4 5 int main(void) 6 { 7 int x = 100; 8 int y = 2; 9 10 dprint(x/y);11 dprint( x+y );12
2014-07-21 17:15:54 674
转载 Linux C 中连接操作符##
#include #define test(x) test ## x#define DPRINT( fmt, args...) \{ \ printf("File : %s Funtion : %s Line : %d \t", __FILE__, __FUNCTION__, __LINE__ );\ printf( fmt, ##args );\}
2014-07-21 17:14:03 995
转载 linux C 中的volatile使用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automati
2014-07-21 17:13:24 1764
转载 linux 中 timeval结构体
网上很多人写到,timeval结构解释错误*******************************************************************问题如下:在debian linux的man页中对gettimeofday函数的说明中,有这样一个说明:DESCRIPTION The functions gettimeofday and sett
2014-07-21 17:11:46 1045
转载 C++中正确使用PRId64
nt64_t用来表示64位整数,在32位系统中是long long int,在64位系统中是long int,所以打印int64_t的格式化方法是:[cpp] view plaincopyprintf("%ld", value); // 64bit OS printf("%lld", value); // 32bit OS 当然有跨平台的方法:
2014-07-21 17:06:22 4742
原创 ifconfig ra0 up/down的实现
#include #include int main(argc argv[]int sockfd;
2014-07-21 11:36:48 6972
转载 java中Class对象详解
java中把生成Class对象和实例对象弄混了,更何况生成Class对象和生成instance都有多种方式。所以只有弄清其中的原理,才可以深入理解。首先要生成Class对象,然后再生成Instance。那Class对象的生成方式有哪些呢,以及其中是如何秘密生成的呢?Class对象的生成方式如下:1.Class.forName("类名字符串") (注意:类名字符串必须是全称,包名+类名
2014-07-20 13:32:33 1198
转载 LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。 LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBR
2014-07-18 12:26:15 802
原创 将5350 i2c clk设置为gpio 中断模式的方法
5350和我之前用的三星和全志的芯片在中断这块有点差别,三星和全志的都是有专门的外部中断管脚,并且每个中断管脚对应一个中断号,对管脚寄存器的配置即irq_desc里chip变量,都是bsp里自带的,我们只需要用request_irq来注册irqaction就可以了。而5350所有的gpio共用一个中断号6,所以想用哪个管脚都得自己配。有可能能用request_irq,但是驱动里已经有set
2014-07-17 17:39:29 2889 2
转载 unique_ptr使用简介
我们知道auto_ptr通过复制构造或者通过=赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如我们不希望多个内存块被多个智能指针对象共享,同时又不会像auto_ptr那样不知不觉的就让原来的auto_ptr对象失效,可咋整呢?这个时候就要使用unique_ptr了,顾名思义嘛,unique
2014-07-14 10:34:54 767
转载 windows下手动配置ipv6地址
在XP,2003等早期版本中,ipv6地址在“网络连接”的属性配置里是无法手工配置的,只能使用netsh配置。配置方法如下:首先,安装IPV6协议,ipv6 install第二步,查看当前使用的本地连接信息:如上图,我的为“本地连接 3”,依次执行以下命令:C:\Documents and Settings\Administrator>netsh
2014-07-13 17:57:04 2345
转载 嵌入式Linux操作系统的版本查询
嵌入式Linux版本查询:uname -a 显示内核版本uname -m 显示ARM处理器内核信息uname -v显示操作系统的编译时间linux版本:在linux/utsrelease.h中定义:[cpp] view plaincopy#define UTS_RELEASE "2.6.31-liuqiming@xinguodu.com--g
2014-07-13 17:22:43 1005
转载 ubuntu ip设置
在Debian(ubuntu就是Debian类linux)中网卡的设置可以通过/etc/network/interfaces文件来进行,具体可分为三种不同的配置方式:DHCP自动获取、静态分配IP地址和PPPoE宽带拨号。 具体设置如下: 在进行配置之前,首先进入/etc/network目录中,编辑interfaces文件: 网卡通过DHCP自动获取IP地址 # This
2014-07-13 14:44:34 717
转载 C++中的IPv6网络程序设计
IPv4 最初是由美国国防部开发的用于网际互联(IP)协议,后来它不仅发展了TCP,而且还进一步发展了IPv4(IP 协议4.0版)。IPv4现在已经广泛应用于Internet网络中,同时也应用于大多数计算机系统,局域网和广域网中。然而,随着Internet 中的计算机数量突飞猛涨,IPv4 的局限性越发明显: 1.IPv4地址数目面临耗尽,日近紧张; 2.IPv4寻址并非完全分等级,这使
2014-07-13 12:43:30 1928
转载 用引用返回值(转)
函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。 例如,下面的程序是有关引用返回的4种形式: //********************* //** ch9_6.cpp ** //********************* #include float temp; float fn1(float r)
2014-07-11 13:30:18 626
转载 关于std:auto_ptr
很多人听说过标准auto_ptr智能指针机制,但并不是每个人都天天使用它。这真是个遗憾,因为auto_ptr优雅地解决了C++设计和编码中常见的问题,正确地使用它可以生成健壮的代码。本文阐述了如何正确运用auto_ptr来让你的代码更加安全——以及如何避免对auto_ptr危险但常见的误用,这些误用会引发间断性发作、难以诊断的bug。1.为什么称它为“自动”指针?auto_ptr只是众多可
2014-07-10 16:48:12 639
转载 [C/C++]关于C++11中的std::move和std::forward
std::move是一个用于提示优化的函数,过去的c++98中,由于无法将作为右值的临时变量从左值当中区别出来,所以程序运行时有大量临时变量白白的创建后又立刻销毁,其中又尤其是返回字符串std::string的函数存在最大的浪费。比如:1 std::string fileContent = “oldContent”;2 s = readFileContent(fileName);
2014-07-09 14:38:12 882
转载 C++11中的右值引用及move语义编程
C++0x中加入了右值引用,和move函数。右值引用出现之前我们只能用const引用来关联临时对象(右值)(造孽的VS可以用非const引用关联临时对象,请忽略VS),所以我们不能修临时对象的内容,右值引用的出现就让我们可以取得临时对象的控制权,终于可以修改临时对象了!而且书上说配合move函数,可以大大提高现有C++的效率。那么是怎样提高它的效率的呢?看段代码先!#include
2014-07-09 11:29:11 707
转载 C++ 11右值引用
C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。 对左值和右值的一个最常见的误解是:等号左边的就是左值,等号右边的就是右值。左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是
2014-07-09 11:28:43 601
转载 Boost学习之指针容器--pointer_container
有时,我们可能需要一个包含指针的容器.比如存放一些不可拷贝的对象或者想在容器里存放基类以实现多态.尽管我们可以直接定义存放指针的STL容器,不过这样并不方便,我们得处处小心,在清空或删除容器里的元素时我们要保证异常安全地回收指针所指向的对象,以防内存泄漏.一个好的办法是使用共享智能指针的容器,如std::vector >,不过这样做的话智能指针所带来的开销显然太大了.Boost.point
2014-07-09 11:08:37 3254
转载 asterisk 支持 VP8 video编码 实现安卓的视频通话
1 :checkout Asterisk source code revision 373330 svn checkout -r 373330 http://svn.digium.com/svn/asterisk/trunk asterisk (下载最新asterisk版本)2 :asterisk 上面需要打一个补丁支持 VP8 video编码 wget http://s
2014-07-08 14:49:00 4159
转载 使用Preference保存设置
Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设
2014-07-03 11:22:28 839
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人