摘要:“C语言” 读书札记(四)之[再续编译执行]介绍 上一篇a.out(hello,world程序)执行之后发生了什么?这次通过系统硬件和操作做粗略的描述,这样对我们也是有一些帮助的。 如果中间若有误,请不吝赐教。从键盘上读取a.out命令 当我们打开我们的终端的时候,shell程序会执行它的指令,等待我们的输入。 当我们在键盘上输入"a.out",敲回车时,shell就知道我们结束了命令的输入。然后shell的指令就会逐一读取目标文件a.out的代码和数据到寄存器,再把代码和数据拷贝到主存储器。 流程图如下 那么在硬件中是如何奔...
阅读全文
摘要:“C语言” 读书札记(三)之[编译执行]介绍 再续前缘“C语言” 读书札记之[程序和编程语言]。 现在C语言跨的领域非常之多,如游戏、嵌入式、智能电器等。为什么不直接用汇编或机器语言直接写呢?原因是汇编和机器语言受到计算机体系结构的影响。直接用某种体系结构的汇编或机器指令写出来的程序只能在这种体系结构的计算机上运行。 C语言的好处是各种体系结构的计算机都有各自的C编译器,可以把C程序编译成各种不同体系结构的机器指令,这意味着用C语言写的程序只需稍加修改甚至不用修改就可以在各种不同的计算机上编译运行。 hello,world 我们从简单hello,world开始——有人说了,又来了,这...
阅读全文
摘要:下面这个网站是一个非常丰富的排序算法的网站。Sorting Algorithm Animationshttp://www.sorting-algorithms.com/这是一个非常不错的排序算法的网站,当你打开这个网站的时候,请不要因为看到很多个图片的大红叉而鄙视它。你先点击网页上方的Problem Size,选择一个尺寸,20,30,40还是50,都行,于是你就可以看到下面整个大表中有图片显示出来了。如下所示:其中,列。是代表每一个排序算法,有“插入”“选择”“冒泡”“Shell”,“合并Merge”,“堆排序”,“快速排序”,“快速3排序”。单击每个一算法的链接,你可以看到这个算法的详细解
阅读全文
摘要:第一个是关于vim的,相当的全面。http://stevelosh.com/blog/2010/09/coming-home-to-vim/第二个是Mozilla的Javascript教程https://developer.mozilla.org/en/JavaScript/Guide第三个是Kernighan 和Ritchie 的”The C Programming Language”第二版的问答和练习。http://users.powernet.co.uk/eton/kandr2/
阅读全文
摘要:Program distribution_GNU - autoconflA simple start lDeeper and deeper lGenerated File Dependencies A simple procedurelcreate Makefile.am (will be shown later)lrun autoscan lmv configure.scan configure.ac ladd bellow macros in configure.ac –AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) –.
阅读全文
摘要:大型项目使用Automake/Autoconf完成编译配置使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/makeinstall,使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefile,而且换个编译环境,Makefile还需要修改(Eclipse也是这样)。这么好的东东当然要拿来用了,但GNU的Autotool系列博大精深,工具数量又多,涉及的语言也多,要是自己从头看到尾,黄花菜都凉了,项目估计早就结束了;上网搜样例倒是有一大堆,但都是“helloworld”的样例,离真正完成大型项目的目标还差得远。没有办法,对照网上的
阅读全文
摘要:1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclo
阅读全文
摘要:本文内容:一、简介二、AutoTools相关说明三、实际例子一、简介=============本文简单介绍最简单的auto tools工具的使用流程。对于一个UNIX/Linux下C程序员来说,一个比较麻烦的工作就是写自己的Makefile。可能你有如下经验:写一个简单的C程序,自己多写几行gcc命令就把程序变成可执行的了;写一个稍微复杂点的程序,源文件个数可能在30个左右,还是写一行行的gcc命令就麻烦了,你可能想到写个makefile,你可能也在这样做着;但你某一天会发现你写的这个Makefile可能不是一个所有 UNIX/Linux类操作系统下通用的Makefile,比如某人下载了你的程
阅读全文
摘要:Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被微软看中成为Vista壁纸御用摄影师。Flickr.com 是最初由位于温哥华的Ludicorp公司开发设计并于2004年2月正式发布的,由于大量应用了WEB 2.0技术,注重用户体验,使得其迅速获得了大量的用户,2007年11月,Flickr迎来了第20亿张照片,一年后,这个数字就达到了30亿,并且还 在以加速度增长。 2005年3月,雅虎公司以3千500万美元收购了Ludicorp公司和Flickr.com。虽然Flic
阅读全文
摘要:首先列出了网站架构关注的一些要点,包括:在线升级效率核心简单独立性模块化再播报一组优酷的数据:用户数:4000万视频数:2000万PV:1.3亿VV:1.6亿主要采用的也都是一些非常常见,成熟的软件和操作系统包括:centos/LVS/PHP采用简单的方式对URL进行规划:http://domain/modules/method/params/举例:http://www.youku.com/playlist_showlist/t2d1c123.html 资讯频道的豆单列表页面http://www.youku.com/playlist_show/id_3219807.html 某个豆单的浏览页面
阅读全文
摘要:记得以前给大家介绍过视频网站龙头老大YouTube的技术架构,相信大家看了都会有不少的感触,互联网就是这么一个神奇的东西。今天我突然想到,优酷网在国内也算是视频网站的老大了,不知道他的架构相对于YouTube是怎么样的,于是带着这个好奇心去网上找了优酷网架构的各方面资料,虽然谈得没有YouTube那么详细,但多少还是挖掘了一点,现在总结一下,希望对喜欢架构的朋友有所帮助。一、网站基本数据概览据2010年统计,优酷网日均独立访问人数(uv)达到了8900万,日均访问量(pv)更是达到了17亿,优酷凭借这一数据成为google榜单中国内视频网站排名最高的厂商。硬件方面,优酷网引进的戴尔服务器主要以
阅读全文
摘要:YouTube的成长速度惊人,目前每天视频访问量已达1亿,但站点维护人员很少。他们是如何管理,以实现如此强大供应能力的?被Google收购后,又在走什么样的发展道路呢? YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性。平台ApachePythonLinux(SuSe)MySQLpsyco,一个动态的Python到C的编译器lighttpd代替Apache做视频查看状态支持每天超过1亿的视频点击量成立于2005年2月于2006年3月达到每天3千万的视频点击量于2006年7月达到每天1亿的视频点击量2个系统管理员,2个伸缩性软件架构师2个软件开发工程师,2个.
阅读全文
摘要:VLC源码分析总结1. 概述VLC属于Video LAN开源项目组织中的一款全开源的流媒体服务器和多媒体播放器。作为流媒体服务器,VLC跨平台,支持多操作系统和计算机体系结构;作为多媒体播放器,VLC可以播放多种格式的媒体文件。主要包括有:WMV、ASF、MPG、MP、AVI、H.264等多种常见媒体格式。VLC采用全模块化结构,在系统内部,通过动态的载入所需的模块,放入一个module_bank的结构体中统一管理,连VLC的Main模块也是通过插件的方式动态载入的(通过module_InitBank函数在初始化建立module_bank时)。对于不支持动态载入插件的系统环境中,VLC也可以采
阅读全文
摘要:VLC架构剖析1. VideoLan简介1.1 videolan组成Videolan有以下两部分组成:VLC:一个最主要的部分,它可以播放各种类型的媒体文件和流媒体文件,并且可以创造媒体流并保存成各种格式的媒体文件,这些文件的质量要比没保存前的件好。videolan作为客户端可以播放本地文件,httP://,rtsp://。VLS:是一种流服务器,专门用来解决流的各种问题,它也具有一些VLC的特征。videolan作为服务器可以输出httP,rtP,rtsp的流。1.2 VLC优点VLC是一种跨平台的媒体播放器和流媒体服务器,最初为videolan的客户端,它是一种非常简便的多媒体播放器,它可
阅读全文
摘要:学习C++和编程的50个观点(1)y Kingofark[注]:是《Kingofark''s 50 Points of View About Learning C++ And Programming(kingofark关于学习C++和编程的50个观点)》的简称;是《Kingofark''s 35 More Pointsof View About Learning C++ And Programming(kingofark关于学习C++和编程的另外35个观点)》的简称。条款1. 把C++当成一门新的语言学习(和C没啥关系!真的。);[解说]: 这一条源于我在《程序
阅读全文
摘要:C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。添加:http://www.boost.org/1、http://snippets.dzone.com/tag/c/--数以千计的有用的C语言源代码片段2、http://www.hotscripts.com/category/c-cpp/scripts-programs/Hotscripts --提供数以百计的C和C++脚本和
阅读全文
摘要:1、指针本身是无类型的,只有当指针取值时才体现出它的类型,至于为什么取int *p,只是为了说明取值时,编译器知道如何去取,要不然编译器不知道如何取,取几个字节,你把不同类型的指针做转换,会发现编译器只是提出警告,而不是报错。
阅读全文
摘要:译者:张乐 robert_AT_thizlinux_DOT_com原作:Greg KH译注:本文依据take 3翻译,应该不会再有大的改动了,如果有本文会随时更新时间仓促,恐难免错漏,欢迎指正原文:http://permalink.gmane.org/gmane.linux.kernel/349656(转贴说明:也可以在内核源代码目录下的Documentation/HOWTO找到本文英文版)译文:------------------------------HOWTO do Linux kernel development---------------------------------这篇文章
阅读全文