2007年11月20日 Tuesday 于 9:27 pm
· 发表在 操作系统, 系统使用
昨天是在同学机子上试的,今天拿LiveCD在另一个机子上试了一下。同学机子配置大概是:独立显卡,128显存;赛阳3.06;内存512M。
进入安装界面之后出现了NVIDIA的LOGO,显卡驱动都是好的(同学的是很棘手的sis显卡),然后让我选择3D效果:none/compize/compize fusion。我就选了最后一个。
进去后,3D效果还不错,一点都不卡!!这让已经熟悉UBUNTU LIVECD的龟速的我实在觉得不可思议!
我又开了EVA,很顺利的上去了。体验一把Kaffeine,听歌一点不卡,很流畅,而且mp3支持也是好的。感觉和我平时用的系统没什么差别。
在刘洋的建议下,我决定进行一个试验,那就是开openoffice!说实话,我都不敢想象这可不可以,因为在cocobear的机子上,开个openoffice是要很久的,何况这只是个LiveCD!!
但是我还是试了!在开着compiz fusion和eva的情况下,我战战兢兢的打开了openoffice。没想到,不到一分钟就开了,大概就半分钟左右,比cocobear的机子快多了!这个实在是觉得让我有点难以接受。
LiveCD集成了很多常用软件,真的感觉就可以当一个常用系统来用了。但是也不是没有问题的,我在开firefox的时候感觉有点卡,不过我觉得本来firefox就很占内存(以前就觉得它很臃肿),对一个LiveCD来说,这个是完全正常的。
我现在对Mandriva的印象非常好,都有点想换了,呵呵。以后考虑装到机子上。
对了,他也自带了Flash Player,还带了一些小flash游戏,喜欢flash游戏的朋友有福了~。虽然他没带wine(要带了就太恐怖了-_-||),但是他带的游戏里头居然有exe文件,查看的时候居然显示:windows可执行文件!这个又觉得好夸张。
永久链接
2007年11月19日 Monday 于 11:19 pm
· 发表在 操作系统, 系统使用
今天西安邮电linux小组举行了Mandriva Install Party。我们拿到了Mandriva的安装盘,是一张LIVE CD。
回来之后就迫不及待的在机子上试了一把,一个字,漂亮的不得了。
先是刚进入cd的界面,就是一个淡蓝的界面,看着很舒服,也是个DNA双螺旋,和Fedora有点象。
按Esc进入verbose模式,弹出一个透明的窗口,很漂亮,感觉比以漂亮著称的SUSE漂亮多了。在安装的过程中,看到输入法选项,有很多的输入法,FCITX和SCIM都是可选的。原本以为它对中文支持很不好的,现在看来,应该很不错。
进入系统之后,默认的窗口管理系统是KDE,KDE本来就是比较漂亮(虽然我比较习惯gnome),然后看了一下自带的工具,真是觉得帅呆了。除了平时KDE都带的软件以外,它还为中国用户贴心带了Eva,感觉让我很喜欢。至于拨号,图形界面的Kppp和字符界面的pppoeconf都是有的,挺方便的。
鉴于时间短促,并没有继续体验更多的特性,但感觉到目前为止它给我的感觉非常好,以后如果我不用ubuntu的话,我会考虑继续体验Mandriva的。
永久链接
2007年11月19日 Monday 于 5:56 pm
· 发表在 C, 编程
在Expert C Programming,Chapter 6,Segments,Programming Challenge中,有个关于段的实验,所以我就试了一下,记录于此。
我们知道,可执行文件中包含文件头,BSS段,DATA段(存放初始化后的全局和表态变量)以及TEXT段(存放可执行文件的指令),对任一个可执行文件使用size命令便可以得到这些数据,例如:
$ size foo
text data bss dec hex filename
1584 288 12 1884 75c process
现在我们来进行这个游戏吧:
1,编译一个”hello world”程序,执行ls -l,得到文件的总体大小,运行size得到文件中各个段的大小。
#include <stdio.h>
int main(void)
{
printf(”hello world”);
return 0;
}
然后编译它,并执行相应的命令:
$ ls -l ./a.out
-rwxr-xr-x 1 space space 6650 2007-11-19 16:55 ./a.out
$ size ./a.out
text data bss dec hex filename
868 268 4 1140 474 ./a.out
以上结果将成为下面对比的对象,以下称之为原文件。 阅读这篇文章的剩余部分 »
永久链接
2007年11月08日 Thursday 于 2:57 pm
· 发表在 C, 编程
今天一个同学问我一个问题:
- char a[20]="hello";
- strcat(a,strcat(a,"world"));
说,为什么得不到他想要的结果?
当时我给他解释了一下,因为标志字符串结束的’\0′被覆盖了,导致strcat无法正常结束。
如果要实现这种方式,只能用strncat来实现,因为strncat会自动的给你加上一个’\0′。
其实按道理,这儿应该会产生内存越界才对,可能是编绎器的原因,并没有产生什么错误,只是没出来预期结果而已(他用的vc 6.0)。
我回去在gcc上试了一下,结果果然是core dumped。
我要说的问题不是这,而是下面这个: 阅读这篇文章的剩余部分 »
永久链接
2007年11月05日 Monday 于 8:44 pm
· 发表在 C, 编程
大三上数据结构的时候,看到书上有一个程序在对malloc函数的返回值做错误检查的时候,只是检查了是否NULL,这个当然是没问题的;只是我发现他调用void malloc(size_t size)这个函数的时候,他的size参数是可能为空的!当时就想,如果为空会返回什么值?在做实验的时候我用TC2.0试了一下,发现他返回的是NULL值。于是也没再深究。
后来碰上了这篇帖子,里头提到的这个问题,但是他给出的答案是“It’s a valid pointer!”,是合法的。觉得纳闷,于是就用手边的gcc试了一下,果然是valid,而不是NULL!我特地用同学机子上的TC2.0试了一下,还是NULL。我这时就觉得奇怪了,到底是TC不标准呢,还是这个标准里头没有规定。不知道实在心里憋得慌,特地跑去查了一下C99标准,C99标准中是这么描述的:
If the space cannot be allocated, a null pointer is
returned. If the size of the space requested is zero, the behavior is implementation-
defined: either a null pointer is returned, or the behavior is as if the size were some
nonzero value, except that the returned pointer shall not be used to access an object.
也就是说,这个是未定义的。 阅读这篇文章的剩余部分 »
永久链接