feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C/C++

摘要:gprof介绍 gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。 为gprof编译程序 在编译或链接源程序的时候在编译器的命令行参数中加入“-pg”选项,... 阅读全文

posted @ 2010-03-09 21:26 feisky 阅读(12054) 评论(0) 推荐(1)

摘要:注:一直不知道原来还有工具来静态检查程序的正确与否,转载过来以备参考。 LINT工具是一种软件质量保证工具,许多国外的大型专业软件公司,如微软公司,都把它作为程序检查工具,在程序合入正试版本或交付测试之前一定要保证通过了LINT检查,他们要求软件工程师在使用LINT时要打开所有的编译开关,如果一定要关闭某些开关,那么要给出关闭这些开关的正当理由。  可想而知,如果从我们编码后第一次编译程序时就使... 阅读全文

posted @ 2010-03-09 21:26 feisky 阅读(879) 评论(0) 推荐(1)

摘要:库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变... 阅读全文

posted @ 2010-03-09 21:25 feisky 阅读(48849) 评论(12) 推荐(14)

摘要:C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。添加:http://www.boost.org/1、http://snippets.dzone.com/tag/c/--数以千计... 阅读全文

posted @ 2010-03-05 14:59 feisky 阅读(54776) 评论(5) 推荐(10)

摘要:1. 有时候我们要计算程序执行的时间.比如我们要对算法进行时间分析,这个时候可以使用下面这个函数.精确到us。#include <sys/time.h> int gettimeofday(struct timeval *tv,struct timezone *tz); strut timeval { long tv_sec; /* 秒数 */ long tv_usec; /* 微秒数 ... 阅读全文

posted @ 2009-12-14 19:50 feisky 阅读(10625) 评论(1) 推荐(0)

摘要:什么是 makefile 或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows的 IDE 都为你做了这 个工作,但我觉得要作一个好的和 professional 的程序员,makefile 还是要懂。这就好像现在有这么多的 HTML 的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML 的标识的含义。特别在 Unix 下的软件编译,你就不能不自己写 makefile... 阅读全文

posted @ 2009-11-16 22:44 feisky 阅读(3966) 评论(0) 推荐(0)

摘要:线程 是计算机中独立运行的最小单位,运行时占用很少的系统资源。可以把线程看成是操作系统分配CPU时间的基本单元。一个进程可以拥有一个至多个线程。它线程在进程内部共享地址空间、打开的文件描述符等资源。同时线程也有其私有的数据信息,包括:线程号、寄存器(程序计数器和堆栈指针)、堆栈、信号掩码、优先级、线程私有存储空间。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应... 阅读全文

posted @ 2009-11-12 15:04 feisky 阅读(21226) 评论(3) 推荐(2)

摘要:Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改, 先来看一下mmap的函数声明: 头文件: <unistd.h> <sys/mman.h> 原型: void *mmap(void *addr, size_t length, int prot, int flags, int... 阅读全文

posted @ 2009-11-11 15:05 feisky 阅读(6328) 评论(0) 推荐(1)

摘要:前段时间重新学习C++,主要看C++编程思想和C++设计新思维。对模版的使用有了更进一层的了解,特总结如下:下面列出了模版的常用情况: //1. 模板类静态成员template <typename T>struct testClass { staticint _data; }; template<>int testClass<char>::_data =1; ... 阅读全文

posted @ 2009-11-04 20:58 feisky 阅读(1017) 评论(0) 推荐(0)

摘要:最近又重新看了Effective C+,不过到现在还是有好多地方不懂的,先记下笔记,待用的时候再细细琢磨。 条款1:尽量用const和inline而不用#define 这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。 用const的好处是,调试时,可以直接获取变量,而非定义的数字,这个在使用gdb跟踪代码的时候很有用,比如#define N... 阅读全文

posted @ 2009-11-04 15:31 feisky 阅读(783) 评论(0) 推荐(0)

摘要:1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代... 阅读全文

posted @ 2009-10-23 17:32 feisky 阅读(4137) 评论(0) 推荐(2)

摘要:Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。 串口简介 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是... 阅读全文

posted @ 2009-10-23 16:34 feisky 阅读(907) 评论(0) 推荐(1)

摘要:所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。 在这里,为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在 Linux 中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(... 阅读全文

posted @ 2009-10-23 16:07 feisky 阅读(2435) 评论(2) 推荐(0)

摘要:开发语言:C/C++项目主页:http://gnuwin32.sourceforge.net/文档地址:下载地址:http://getgnuwin32.sourceforge.net/ 阅读全文

posted @ 2009-10-23 11:38 feisky 阅读(1827) 评论(0) 推荐(0)

无觅相关文章插件,快速提升流量