自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (16)
  • 收藏
  • 关注

转载 Makefile好助手:pkgconfig

你在Unix下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中。然后,告诉你的同事说,你可以取下来用了。这时,你长长的出了一口气,几天的工作没有白费,多么清新的空气啊,你开始飘飘然了。 “Hi,怎么编译不过去?”你还沉浸在那种美妙的感觉之中,双臂充满着力量,似乎没有什么问题能难倒你的。正在此时,那个笨蛋已经冲着你嚷开了。 “不会吧,我这边

2011-07-29 16:52:33 470

转载 设计log函数库的几个要点

只要留意一下大项目的源码,你会发现,几乎无一例外的包括一个log模块。它的功能很直观:记录一些程序运行时信息,多数情况是用来辅助debug的。大项目都有一套的log的函数,在它的基础上开发,调用它提供的Log函数就行了,比如linux内核、apache等。也有开源log函数库,可以直接拿过用。这里,我们并不鼓励重新发明轮子,但在少数情况下,确实不得不编写自己的log函数。下面是对以前的经验的总结,

2011-07-29 16:49:42 720

转载 检查新同事的代码时发现的问题

检查新同事的代码时发现的问题 今天看了一个组员的代码,他是今年才毕业的。在应届毕业生中,他的能力算是相当不错的了,所以我们才破格录用,并准他一个月假期回去答辩毕业论文。在他的代码中,发现几个问题,其中一些颇具代表性,把它们记下来供新手参考。 函数原型中没有参数名。比如,一个函数原型为int foo(const char*buff, size_t buff_length)的函数,他写

2011-07-29 16:48:23 549

转载 Linux下的调试工具

Linux下的调试工具 随着XP的流行,人们越来越注重软件的前期设计、后期的实现,以及贯穿于其中的测试工作,经过这个过程出来的自然是高质量的软件。甚至有人声称XP会淘汰调试器!这当然是有一定道理的,然而就目前的现实来看,这还是一种理想。在日常工作中,调试工具还是必不可少的。在Linux下,调试工具并非只有gdb,还有很多其它调试工具,它们都各有所长,侧重方面也有所不同。本文介绍几种笔者常用

2011-07-29 16:35:18 416

转载 Linux下共享库(SO)有关的几个环境变量

Linux支持共享库已经有悠久的历史了,不再是什么新概念了。大家都知道如何编译、连接以及动态加载(dlopen/dlsym/dlclose)共享库。但是,可能很多人,甚至包括一些高手,对共享库相关的一些环境变量认识模糊。当然,不知道这些环境变量,也可以用共享库,但是,若知道它们,可能就会用得更好。下面介绍一些常用的环境变量,希望对家有所帮助: LD_LIBRARY_PATH这个环境变量是大

2011-07-29 16:32:43 413

转载 i++循环与i--循环的执行效率

昨天同事问了我一个问题,有两个循环语句:for(i = n; i > 0; i–){…}for(i = 0; i {…}为什么前者比后者快?我当时的解释是:i–操作本身会影响CPSR(当前程序状态寄存器),CPSR常见的标志有N(结果为负), Z(结果为0),C(有进位),O(有溢出)。i > 0,可以直接通过Z标志判断出来。i++操作也会影响CPS

2011-07-29 16:14:21 428

转载 C语言之if...else PK switch...case

在学校学C的那会儿,就已经知道switch...case的执行效率要相对if...else较高了(大体上讲),因为从字面上和逻辑上看,switch...case是不用像if...else那样做一系列比较判断就可以直接定位到相应的条件分支的。不过也没有深究过其中的原理。后来由于一偶然原因,就明白了其中的细节。今日碰巧看到一篇blog,是讲作者对此问题的思考,我觉得作者的理解大体上都是对的,不过下面跟

2011-07-27 09:19:44 686

转载 #define

#define用法           1.简单的define定义 #define   MAXTIME   1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i 编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。 这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是

2011-07-25 09:32:39 1469

转载 程序员技术练级攻略

导读:本文是由陈皓和他的一位朋友Mailper合作完成,原名叫《Build Your Programming Technical Skills》,本文分享了Mailper和作者个人的学习经历。每个程序员都希望自己能顺利的升级到高的层次,您不妨按照下面的方法去做。前言你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学

2011-07-20 16:43:51 677

转载 指针的那点事

懂得C语言的人都知道,C语言之所以强大,以及其自由性,绝大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。所以从我的标题加了个(一)也可以看出指针的重要性,我尽可能的向大家交代清楚我对于指针的理解。所以在讲解的过程中我尽可能的用代码加文字的描述方式,通过代码的分析来加深我们对于指针的理解,我给出的都是完整的代码,所以读者可以在看的过程中直接copy下去即可运行,希望下面的讲

2011-07-20 14:18:32 624

转载 C语言之断言

每次写摘要我都觉得是一件很头疼的事儿,因为我知道摘要真的很重要,它几乎直接就决定了读者的数量。可能花了九六二虎之力写出来的东西,因为摘要的失败而前功尽弃,因为绝大多数的读者看文章之前都会浏览下摘要,如果他们发现摘要“不对口”,没有什么特色和吸引人的地方,那么轻则采用一目十行的方法看完全文,重则对文章判“死刑”,一篇文章的好坏虽然不能用摘要来衡量,但是它却常常被读者用来衡量一篇文章的好坏,从而成为了

2011-07-20 14:14:54 358

转载 一道EMC面试题,关于void指针

题目:补充语句,使下面程序if判断语句始终为真,不能改动if判断语句,即只能在之前加语句if ((*f = 0)||(void *)f == (void *)&f){  /* statements always executed*/} 很简单,    void *f[] = {0};当然,void换成int,char。。。。也可以

2011-07-19 14:04:09 633

转载 各类资料汇总

点击打开链接

2011-07-19 13:58:36 432

转载 几种开源的TCP/IP协议栈对比

几种开放源码的TCPIP协议栈概述 1、BSD TCP/IP协议栈      BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP 栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广

2011-07-19 13:56:33 8344

转载 辞职后五险一金怎么处理?

养老保险一般要交满15年,到退休的时候才能终生享受养老金,所以想拿养老金的人请务必在自己退休前15年就开始交。如果到退休年龄交养老保险不满15年,那等到你退休的时候国家会把你个人帐户上存的8%的养老金全部退给你。那单位给你交的21%到哪里去了?国家把单位为你交的21% 的钱全部划到国家的养老统筹基金里了。国家规定,退钱的时候只退给个人自己扣交的钱,单位为他交的钱全部都为国家做贡献。退休时候

2011-07-19 13:55:51 806

转载 如何选择开源许可证?

如何为代码选择开源许可证,这是一个问题。  世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,也很复杂。  乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。  下面是

2011-07-19 13:53:29 348

转载 请不要做浮躁的人

1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。4.不

2011-07-18 15:22:02 354

转载 程序人生-我已经努力了七年

程序人生-我已经努力了七年      声明:这不是我本人的经历,是在网上走转载来激励自己的!---------------------------------------------------------------------------------------------------------------------------------      这些日子我一直

2011-07-18 12:47:45 656

转载 我所认为的产品经理——从读PONY的产品笔记想到的

年前非常流行的PONY的产品演讲笔记,当时读了一遍感觉很多东西深有体会。不过,到了年末,没时间去仔细想。今天,仔细的再读了一遍,结合自己的一些体会,写了这篇文章。本文仅代表一家之言,如果觉得不合理,可以和我讨论,勿跟污言秽语,我也没时间去删除,免得影响了其他的朋友。产品经理是什么?很长一段时间,我一直在思考产品经理到底是什么?他的核心价值和存在意义是什么,看过很多人写的相关的资料和评价。有

2011-07-18 12:20:48 2322

转载 fork两次如何避免僵尸进程

曾经觉得费解,温故知新一下:/*g++ -o New0001 New0001.cpp */#include #include #include #include int main(void){   pid_t pid;    if ((pid = fork())     {        fprintf(stderr,"Fork error!/n");

2011-07-18 11:38:33 552

转载 Linux内核编程实战经验谈

当前,在国产自主版权的操作系统这面大旗的倡导下,IT界掀起了一浪高过一浪的Linux编程热潮。Linux以其源码开放、配置灵活等不可多得的优越性吸引着越来越多的编程爱好者深入Linux的内核开发。笔者近来实践过一个Linux的实时化改造课题任务,积累了一点Linux内核编程的实战经验,在这里想就编译内核、增加系统调用等方面的问题和感兴趣的爱好者共做切磋。编译内核 在Linux编程的实践

2011-07-18 11:37:49 417

转载 如何学习linux编程

建议学习路径:  首先先学学编辑器,vim, emacs什么的都行。然后学make file文件,只要知道一点就行,这样就可以准备编程序了。   然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。   如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握

2011-07-18 11:36:57 436

转载 TCP/IP网络编程之四书五经

TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想要在这个领域达到融会贯通的地步,不打下坚实的基础是不可想象的。正如Richard Ste

2011-07-18 11:36:21 455

转载 创建线程时的几个陷阱

创建线程时的几个陷阱 前几天帮同事查一个多线程的BUG,不到十秒钟我就找到了问题的根源。N年前我曾犯过类似的错误,呵,今天仍然有人在重复。这些问题都比较典型,把它们写出来,供新手参考吧。 l         用临时变量作为线程参数的问题。#include #include #include  void* start_routine(void* p

2011-07-18 11:34:32 357

转载 C 宏定义详解

我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if defined宏正是为这种情况提供了解决方案.举个例子,如下:#define .... #define .... ........ ........ #define a 100 ....... 此时,我们要检查a是

2011-07-18 11:32:50 381

转载 华为编程规范化

1 排版¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。¹1-2:相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if (!valid_ni(ni)){     ... // program code}repssn_ind = ssn_data[index].repssn_index

2011-07-18 11:29:46 715

原创 编程小结

1.先写好各个接口,再编写具体模块,以免影响别人的进度;2.malloc后把所有的结构体参数初始化,free和申明指针时该置NULL的就置NULL;3.数组的越界溢出,可以设置数组上下边界的异常检查和处理来防止溢出等未知错误;4.链表中野指针及错误指针的访问;5.malloc与free的匹配,以防内存泄漏。注意指针置为NULL;6.检查变量类型的声明;7.测试文件的改写

2011-07-18 11:26:18 450

转载 Linux程序设计——用getopt处理命令行参数

Linux程序设计——用getopt处理命令行参数 一2007年09月13日 星期四 05:52 P.M.        Linux下很多程序甚至那些具有图形用户界面(graphical user interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更有用。getopt()是一个

2011-07-18 11:18:57 416

转载 关于linux内核学习

常常有人问:我想学习内核,需要什么基础吗?Linus Torvalds本人是这样回答的:你必须使用过Linux。 这个……还是有点太泛了吧,我想下面几个基础可能还是需要的,尽管不一定必需:1, 关于操作系统理论的最初级的知识。不需要通读并理解《操作系统概念》《现代操作系统》等巨著,但总要知道分时(time-shared)和实时(real-time)的区别是什么,进程是个什么东西,CPU和系统总线、

2011-07-06 13:45:21 472

ISO14229-UDS中文翻译版-542

ISO14229_UDS中文翻译版_542页 UDS

2022-12-12

车载诊断标准ISO15765中英文

车载诊断标准ISO15765中英文 UDS

2022-12-12

Nginx开发从入门到精通【pdf】版

Nginx开发从入门到精通【pdf】版 讲的挺详细的,推荐收藏,有需要的一起学习下

2015-08-12

Linphone详解

详细讲解linphone内部结构,对学习和移植linphone的同学会很有帮助,现在没google,基本是找不到这种中文资料的

2014-07-29

NMEA0183.pdf

NMEA0183码报文的详细说明书,介绍的还是比较详细的。

2012-05-28

The NMEA 0183 Protocol

The NMEA 0183 Protocol的详细内容,值得于大家分享

2010-07-27

gpsd-nmea-0183协议

关于gpsd-nmea-0183协议的详细内容,值得于大家分享

2010-07-27

DirectFbWiki翻译第一部分

关于DirectFbWiki的中文版教程,希望和各位一起分享!!

2010-07-23

DirecrFB_overview_V0.2中文版

DirecrFB-overview中文教程,找了好久才找到的,希望能与大家一起分享!

2010-07-23

DirectFB-api

关于DirectFB的api接口说明,希望能与大家分享!

2010-07-23

空空如也

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

TA关注的人

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