其他
文章平均质量分 66
ustcxiangchun
这个作者很懒,什么都没留下…
展开
-
软件系统架构高级工程师
任职要求:1、7年以上该方面专心致志的经验;2、带队开发过成功大量上市的LINUX高端智能手机或者高端MP4,并且自己还在一线从事编码工作,能够从事技术指导工作;3、熟悉高端手机的整个研发流程,精通代码的规范、管理与控制,软件版本控制;4、精通LINUX系统内核,对裁剪、编译环境建立、更新、调试等方面要有系统认识与方法;5、精通C/C++/JAVE语言,对程序系统架构有极深的理解;原创 2009-09-06 22:18:00 · 625 阅读 · 0 评论 -
#define宏定义中特殊符号
1. #:在宏展开的时候会将#后面的参数替换成字符串,如: #define ToString(x) #x 那么 char *str = ToString(123); 结果str="123"; 2. ##:将前后两个的单词拼接在一起,如: #define cat(x,y) x##y 那么 int n = cat(52, 123); 结果 n =52123;原创 2011-06-21 11:11:00 · 2745 阅读 · 0 评论 -
dlsym RTLD_DEFAULT
<br />今天看alsa-lib的代码,发现一个场景是会调到<br />dlsym(RTLD_DEFAULT, name);<br />也就是说,handle=RTLD_DEFAULT,在网上查了下,这种情况下会发生的事情是,会在当前进程中按照 default library search order搜索name这个symbol,网上的介绍摘录如下:<br /> <br />http://www.qnx.de/developers/docs/6.4.0/neutrino/lib_ref/d/dlsym.h原创 2011-04-08 16:52:00 · 11702 阅读 · 0 评论 -
有符号数与无符号数运算
<br />今天遇到一个bug,当AudioFlinger从AudioStreamInALSA::read()返回时,其实是有可能返回一个负数的,但是当应该返回一个负数时,却返回一个超级大的正数,查了半天,终于明白是有符号正数与无符号正数在一个表达式运算时,会强制转换引发的错误。C语言中,当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型<br /> <br />ssize_t AudioStreamInALSA::read(void *buffer, ssize_t bytes){原创 2011-04-01 15:13:00 · 5022 阅读 · 0 评论 -
危险的注释,行连接符
<br />C语言中,//注释的后面如果还有行连接符/那就危险了,下面一行会被注释掉,示例如下:<br />void main()<br />{<br /> int a, b;<br /> <br /> a = 7; //注释的后面有行连接符/<br /> b = 8;<br /> <br /> printf("a=%d, b=%d", a, b); <br />}<br /> <br />这段程序中,b输出是0而不是8,就是因为 b=8; 这句被注掉原创 2010-12-08 09:58:00 · 1221 阅读 · 0 评论 -
危险的注释,行连接符
<br />C语言中,//注释的后面如果还有行连接符/那就危险了,下面一行会被注释掉,示例如下:<br />void main()<br />{<br /> int a, b;<br /> <br /> a = 7; //注释的后面有行连接符/<br /> b = 8;<br /> <br /> printf("a=%d, b=%d", a, b); <br />}<br /> <br />这段程序中,b输出是0而不是8,就是因为 b=8; 这句被注掉原创 2010-12-08 09:58:00 · 1137 阅读 · 0 评论 -
vmware linux 加一个硬盘
在Vmware中安装linux后,如何增加一个虚拟硬盘: 打开vmware,单击Edit virtual machine settings, 选择add增加一块虚拟硬盘, 可以是IDE硬盘,也可以是SCSI硬盘,然后可以设置虚拟硬盘大小,设置好后,启动linux。 1)使用fdisk命令进行分区命令格式:fdisk /dev/sdb 然后按n(表示添加一个新分区),选p(作为主转载 2010-04-08 15:13:00 · 1403 阅读 · 0 评论 -
转:标准C++类string的Copy-On-Write技术
1、 概念 Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你的父母出来在你房间要检查你是否在复习时,你才真正捡起课本看书。这就是“拖延战术”,直到你非要做的时候才去做。 当然,这种转载 2010-04-10 10:43:00 · 571 阅读 · 0 评论 -
一次读入整个二进制文件
1.打开文件 if((fp = fopen(FILE_NAME, "rb+")) == NULL)2.得到文件的长度 fseek(ap->fp, 0L, SEEK_END); file_size = ftell(fp); if(-1L == file_size) { printf("ftell() error!/n");原创 2009-12-13 13:38:00 · 975 阅读 · 0 评论 -
自动生成 Makefile 的全过程详解! automake/autoconf 入门(转)
自动生成 Makefile 的全过程详解! automake/autoconf 入门automake/autoconf 入门 来自: http://conkeyn.javaeye.com/blog/337669作为Linux 下的程序开发人员,大家一定都遇到过Makefile ,用make 命令来编译自己写的程序确实是很方便。一般情况下,大家都是手转载 2009-11-12 16:55:00 · 802 阅读 · 0 评论 -
C/C++中的日期和时间 time_t与struct tm转换
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字转载 2009-11-05 16:18:00 · 670 阅读 · 0 评论 -
嵌入式应用三大发展方向(转)
嵌入式系统,我理解的应用方向,大概有以下几种,可能不全,欢迎大家补充。1、手持终端应用 这应该类似于掌上游戏系统,手机类应用,主要以图形UI为主,同时兼顾网络通信,因为手持终端,以后很可能是云计算的终端,作为一个大型系统(网游,管理,ERP,EIP等)的终端存在。 这部分的开发,我个人的理解应该向Windows的开发理念靠拢,不管是用WinCE,还是S60,Palm,或者g转载 2009-11-05 13:18:00 · 1429 阅读 · 0 评论 -
堆和栈的区别(转)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类转载 2009-10-09 17:16:00 · 531 阅读 · 0 评论 -
程序员,应该掌握的英语词汇
程序员,应该掌握的英语词汇 卷首语:“英语”不需要专业,因为它只是工具...... 本文选自《Java程序员,上班那点事儿》 有时候如果应聘到了一个有外资背景的公司或者这个公司的很多人都有海外或外资工作背景时,你也许还会用到一些日常工作交流时候的词汇。 比如我们看一下某主管开会时的发言: 小王,请你尽快“Push”一下这件事,按照前转载 2009-09-06 22:21:00 · 587 阅读 · 0 评论 -
#、##和__VA_ARGS__
1.# 假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing). #incldue #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*转载 2013-02-28 11:35:27 · 595 阅读 · 0 评论