- 博客(33)
- 收藏
- 关注
转载 C语言之内存管理
原文出处:http://blog.csdn.net/jiaxiongxu/article/details/6613315本文主要是以菜鸟的角度看C语言内存管理,分析malloc最基本的实现方法,如果已经知道malloc的实现方法的大鸟们,可以直接忽略本文了,呵呵。在8086汇编时代里,是没有全局变量和局部变量之分的,通常的做法是:1、自己选定一片内存空间,用伪指令起个别名就当作全局变量
2012-05-22 15:36:13
826
原创 gcc编译的背后(预处理、编译、汇编和链接) 一
本次将分为四个章节来讲,分别来讲述一下gcc编译背后的四个步骤。第一部分:预处理。相信大家对这一块其实挺了解了,下面我就献丑,以自己的理解再讲一遍。预处理是c语言从源代码变成可执行程序的第一步,它包括头文件的包含,宏定义扩展,条件编译的选择等。首先介绍一下预处理的命令:一共有12条预处理的命令,都是以#开头且每个预处理命令必须独占一行,它的结尾没有分号,因为它不是语句。#if
2012-05-21 22:28:37
1224
原创 书单计划
昨天的时候,看了一篇刘未鹏的《怎样花两年时间去面试一个人》,感触颇多,感觉自己生活过得太安逸了,开始浮躁与迷茫了。幸好看到了刘大哥的这篇文章,让我又充满了激情。文中刘大哥列出了一个书单,这些书全都是大名鼎鼎的IT经典书籍,自己也看过几本,可是都没有好好的去把它看好。是应该好好的静下心来,好好的提高自己的时刻了。写下此博客,以此为励!自己给自己订的书单计划:1、Programming P
2012-05-14 13:00:32
1039
转载 用usb安装ubuntu server 10.04
<br /> 原文:http://blog.csdn.net/historyasamirror/archive/2011/03/03/6219935.aspx<br />步骤: <br />1. Windows下格式化好U盘,准备好相应的iso文件(我的是ubuntu-10.04.2-server-amd64.iso)。<br />2. 使用Unetbootin 将iso文件安装到U盘上。详细步骤可见http://ulapps.com/161 。注意,由于是我安装的是10.04的server版,所以Unet
2011-03-29 10:36:00
4290
原创 对于高内聚低耦合的解释
<br />今天看驱动程序时看到这个词语,现在就来解释一下。<br />基本解释: 高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。 高内聚<br /> 内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。 <br /> 所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。 低耦合<br /> 耦合:一个软件结构内不同模块之间互连程度的度量(耦合
2011-03-17 09:43:00
1658
原创 cygwin中使用javac
<br />Can I execute programs installed under the Window's directory? <br />E.g., javac. <br /><br />A: There is no difference between executable programs <br />under cygwin and those "native" to Windows. For instance, <br />if you have installed the java
2011-02-24 13:15:00
2702
原创 取得程序运行时间
<br />#include <stdio.h><br />#include <sys/time.h><br />struct timeval start;<br />struct timeval end;<br />int main()<br />{<br /> int timeuse;<br /> gettimeofday(&start,NULL);<br /> usleep(100);<br /> gettimeofday(&end,NULL);<br /> timeus
2011-02-12 16:25:00
569
原创 windows无法访问指定设备路径或文件
<br />今天打开WPS文件时,出现windows无法访问指定设备路径或文件,后来发现原来是被锁定了,处理方法为选中该文件后右键,选属性,然后点解除锁定就OK了。
2011-01-17 11:07:00
3710
转载 gcc编译动态和静态链接库
<br />gcc编译动态和静态链接库 <br />我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。<br />静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程<br />序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需<br />要动态库存在。本文主要通过举例来说明在 Linux中如何创建静态库和动态库,以及使用它<br />们。 <br /> <br /> <br /> <br />第1步:编辑得到
2011-01-13 12:18:00
1389
转载 source 命令与点命令
<br />source命令与“.”点命令<br />source 命令是 bash shell 的内置命令,从 C Shell 而来。<br />source 命令的另一种写法是点符号,用法和 source 相同,从Bourne Shell而来。<br />source 命令可以强行让一个脚本去立即影响当前的环境。<br />source 命令会强制执行脚本中的全部命令,而忽略文件的权限。<br />source 命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile
2011-01-11 17:22:00
4062
原创 printf函数详解
<br />首先直接描述printf函数中的“格式描述串”,它是由一系列的“格式转换说明符号”组成,格式转换说明符号的描述形式如下:<br />%[+][-] 0 m[n][输出精度]<形式字母><br />(1)形式字母:制定输出格式,如表<br />d:十进制整型数<br />i:十进制整型数<br />x:十六进制整型数<br />o:八进制整形数<br />u:无符号十进制整形数<br />c:单个字符<br />s:字符串<br />e:指数形式的浮点数<br />f:小数形式的浮点数<br />
2011-01-11 11:51:00
1843
原创 outlook 附件为灰色
<br />今天发现邮件中的附近打不开也下不了,查找了一下资料,原来是outlook设置的问题,打开outlook--工具--选项--安全标签,去掉不允许保存和打开有病毒的附件,就可以了。outlook开始都会把附件当作病毒文件。
2011-01-07 17:24:00
3566
原创 打开ftp服务器上的文件夹时发生错误
<br />今天同事要用ftp凳陆到其它公司提供的ftp地址上,始终登陆不上去,网上找了一下资料,如下设置一下即可。<br /> <br />打开IE浏览器,找到“工具”、“IE选项”、“高级”、“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”,把前面框中的勾勾去掉就可以了。
2011-01-06 17:10:00
5008
原创 svn 做分支
<br />首先在自己要做地方点右键<br />然后选tortoiseSVN,接着选 branch/tag <br />这样就能从当前版本做一个分支出来了。<br />然后把当前的路径转到分支上就可在分支上提交了。<br />转路径方法为:<br />在自己要做地方点右键<br />然后选tortoiseSVN,接着选switch,然后选择分支上的版本即可。
2011-01-04 16:35:00
1419
原创 关于电脑用着用着突然打开文件或者我的电脑或者桌面显示很卡的问题
<br />以前的时候,电脑用着用着就会出现问题,当我返回到桌面时,桌面上的那些图标一个一个出现,就是那种很卡的现象,进我的电脑里也一样,发现凡是和文件操作有关的都卡,用其它软件都不卡,打开资源管理器也发现正常,当时也没太在意,以为是电脑太烂了,所以用不了多久就要重启一次,工作一天都不知道要重启几次,杀毒什么的,整理内存,清除垃圾什么的都没用,这种现象还是会出现。后来就一个一个感觉可疑的进程关闭试了一下,最终被我发现,原来是SVN在作怪,把TSVNCache.exe关闭之后就解决了这个问题。
2011-01-03 20:34:00
4756
原创 关于打开wps时出现windows install安装的问题
<br />至从我删了word用wps之后,有时候用wps打开一个word文件时,会出现windows installs的安装,每次都要我点好几下取消安装才行,晚上花了个时间去解决这个问题,网上找来找去没找到一个好办法,然后就自己研究了下,想了下哪些方面可能出现这种问题,最后发现原来是我卸载word不完成,把那个windows installs 没有卸载,卸载了这个之后打开wps就没出现问题了。<br />
2011-01-03 20:28:00
13035
原创 TortoiseSVN合并
<br />早些天时候,公司需要用tortoiseSVN合并两个版本,以前的时候,因为程序需要分成两个部分,一个适合与播放avs节目的,另一个适合于播放mpeg2节目的,所以当时就作了一个分支,后来的一些改动都在avs这个版本上做的,到最后,发现avs上的东西在mpeg2上也可以用,所以就打算把avs上做的东西给合并到mpeg2上去。<br />上面就是合并的步骤了:<br />1工具:<br />TortoiseSVN<br />2.分支合并到主干的步骤<br />2.1环境:<br />当前工作拷贝是主
2011-01-03 17:02:00
6294
原创 野指针所引起的问题
今天运行程序时,遇到了一个很奇怪的问题,加了几个打印,就会出现死机的情况,去掉就能正常运行,就奇怪了,怎么会出现这种情况,最后百思不得其解,叫了同事过来看了看,最后发现原来是野指针引起的问题。下面,对野指针作个简单的介绍一下。定义:“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。成因:野指针的成因主要有三种:一、指针变量没有被初化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,
2010-12-29 22:16:00
3618
原创 google文档上不了原因
<br />今天发现google文档就是上不了,换了一个浏览器也还是上不了了。去网上查了一下,原来我的host文件被清空了才导致上不了了。<br />设置方法如下:<br />打开<br />C:/Windows/system32/drivers/etc/hosts<br />(注意,这是个没有尾缀的文件,可以用windows自带的记事本程序打开编辑)<br />在hosts文件的结尾加上:<br />209.85.225.101 docs.google.com<br />74.125.127.100 wr
2010-12-28 09:49:00
1894
转载 how to write makefile
出处:http://www.chinaunix.net/jh/23/408225.html关于程序的编译和链接首先要把源文件编译成中间代码文件,在windows下也就是.obj文件,UNIX下是.o文件,即Object File,这个动作叫做编译,然后再把大量的Object File合成执行文件,这个动作叫作链接。链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序。链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在
2010-12-16 10:13:00
756
原创 strlen引起的错误
<br />今天运行程序时,发现程序某名其秒的死了,找来找去找不到原因死在哪里,后来叫了同事过来帮忙看一下,发现原来是strlen的错误,原来strlen不能对空指针用。<br />下面简单介绍一下strlen。<br /> <br />strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'/0'为止,然后返回计数器值。<br />原型:extern unsigned int strlen(char *
2010-12-14 22:01:00
14316
1
原创 grep
1. grep简介 egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串
2010-12-14 11:50:00
568
原创 暗时间
转至 刘未鹏的暗时间http://mindhacks.cn/2009/12/20/dark-time/<br />如果你有一台计算机,你装了一个系统之后就整天把它搁置在那里,你觉得这台计算机被实际使用了吗?没有。因为CPU整天运行的就是空闲进程。运行空闲进程也是一天,运行大数据量计算的程序也是一天,对于CPU来说同样的一天,价值却是完全不一样的。<br />大脑也是如此。<br />善于利用思维时间的人,可以无形中比别人多出很多时间,从而实际意义上能比别人多活很多年。我们经常听说“心理年龄”这个词,思考得多
2010-12-14 10:29:00
804
1
原创 svn 分支
首先选中你要做分支的文件,然后右键 点 TortoiseSVN -> Show log->出现版本历史,点要做分支的版本右键,然后选Create branch/tag from revision 即可。看资源库,选Browse repository
2010-12-10 14:47:00
671
原创 凳录自动执行脚本
<br />终于,把这个功能给实现了,以前的时候,每次登录linux系统,每次都要先执行一个脚本(环境配置的),就想着怎么能让他每次一登录能自己执行,现在终于实现了。<br />实现方式如下。<br />[root@localhost ~]# vi ~/.bash_profile<br /><br /> 添加内容为:<br /><br /> ./test<br /><br /> 保存并退出。<br /><br /> 最后,重启系统即可实现。<br /> <br />因为系统登录后会首先执行.bash
2010-12-10 13:14:00
880
转载 tr命令详细用法
<br />http://www.51testing.com/?uid-45739-action-viewspace-itemid-173022<br /> <br />语法:<br /> tr [options] [source-char-list] [replace-char-list] < filename<br />用途:<br /> 转换字符,例如:将大写字符转换成小写字符。选项可以让你指定所要删除的字符,以及将一串重复出现的字符浓缩成一个
2010-12-10 11:44:00
1361
原创 shell的一些学习笔记
今天开始学习Shell脚本,以尽量短的时间内把《shell 脚本学习指南》给啃完。 下面的就是一些关于学习时的一些记录了。who 可以告诉你系统中有哪些人登录。who | wc -l 可以统计有多少人登录了。 wc -l 是统计行数, | 是管道的意思,是把who 的输出作为wc 的输入。wc -l /home/cl/test.c 统计test.c文件中的内容行数。下面就是把上面的管道变成一个独立的命令cat > nusers //建立文件,使用cat复制终端的输入who
2010-12-10 11:43:00
618
原创 定时程序
<br />首先介绍一下alarm函数<br />alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALARM信号。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。<br />所需头文件<br />#include <unistd.h><br />函数原型<br />unsigned int alarm(unsigned int seconds)<br />函数参数<br />seconds
2010-12-09 14:05:00
624
转载 文件结束符EOF
<br />转至:http://www.cnitblog.com/guopingleee/archive/2009/01/29/54047.aspx<br />>> 关于文件结束符EOF<br />EOF 是 End Of File 的缩写。<br />在C语言中,它是在标准库中定义的一个宏。<br />人们经常误认为 EOF 是从文件中读取的一个字符(牢记)。其实,EOF 不是一个字符,它被定义为是 int 类型的一个负数(比如 -1)。EOF 也不是文件中实际存在的内容。EOF 也不是只表示读文件到了结
2010-12-08 13:09:00
36088
4
原创 c 函数fopen,fwrite,fread
C 语言函数 fopen功能:打开一个文件函数原型:FILE *fopen(const char *path,const char *mode);所需库: 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。参数说明:参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。mode有下列几种形态字符串:r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。rb+ 读写打开一个二进制文件,只允许读
2010-12-07 13:20:00
6218
原创 判断文件存在与否
20101206 写下的第一篇博客,开始养成写博客的习惯,虽然刚开始写不出什么高深的理论,但重在积累,让自己以后也可以回忆查找。
2010-12-06 13:11:00
823
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人