c problems series 1

1.老师你好,有个C语言问题请教。

#include <stdio.h>
main()
{
union
{
char ch[2];
int d;
}s;
s.d=0x4321;
printf("%x,%x\n",s.ch[0],s.ch[1]);

}

为什么输出21,43 而不是43,21

这个问题不复杂,考到了数据在内存中如何存储问题。数据在内存中存储是从低位到高位,也
就是说先存储的21,在存储的43.所以按序输出时候就输出这个结果了。

2.
%ns和%.ns
从 Planet Chinese Security Community 作者:void@planetchinesesecuritycommunity.org(void)
这段代码有什么问题?

void func(char *p) {
char buf[10+1];
memset(buf,0,sizeof(buf));

// limit string to 10 chars
sprintf(buf,"%10s",p);
printf("Hello, %s\n",buf);
}

答案:
%10s只是用于宽度对齐,超过10字节,仍然全部拷贝,导致溢出.
%.10s才是限制了拷贝长度为10字节

windows xp安装sata硬盘驱动

话说上次给同学去选购笔记本,昨天的昨天他买了Acer 4720Z,5300RMB,朋友买新的机子我当然很高兴,买的时候预装的是vista,我觉得要是你要打游戏,1G的内存还是回去自己装XP算了,不然卡卡卡。事情就是这样同学说游戏卡,叫我给他换个XP,我开始还觉得不就是换个系统啦,无所谓,马上搞定。用了jujumao ghost xp还原gho镜像到c盘,竟然机子还可以启动使用vista ,我一直都不相信是人品问题,还原镜像没有效果就干脆重新用安装个干净的XP,但是如大家的所遇到的问题一样,安装程序找不到机子上面的硬盘。本来XP是2001年的时候出来的,现在也有7年的历史了,所以里面有些现在很常用的驱动没有集成实属正常。我用的是jujumao封装的xp,但是还是没有效果。

老办法

现在买SATA硬盘的人渐渐多了,但是除了几款最新的南桥芯片外,其他南桥芯片接上SATA后在安装系统时都有一个毛病,那就是需要安装额外的驱动,很多初次在SATA上安装操作系统的朋友都发现系统无法认出SATA硬盘,其实那是因为没有安装驱动的缘故。那么额外的驱动要怎么安装呢?很简单,我们要做的只要在系统进入安装选项之前多做一步,下面详细介绍具体的操作。安装过2000/XP的朋友都知道,在进入安装选项界面之前,系统要加载一些驱动等文件,如果你要安装南桥SATA的驱动就要留意了,在加载的时候会有这样的提示提示:

press F6 if you need to install a third party SCSI or RAID driver...

按“F6”.插入你买主板时附送的软盘,里面就有南桥SATA控制器的驱动。什么?你把软盘丢了?!!没问题,你可以去你主板的网站下载,然后把它放到软盘就行了:>(由于文件名因芯片组而异,在这里我们就不具体介绍了)。按“S”安装你自己的驱动。注:有些新的主板可以在安装过程中放入光盘,读取光盘里的驱动,不过大多数还是要用软盘。

新方法

从现在的硬件的行情来看原始的安装方法不好,软驱几本上绝迹了,而且每次安装都要插个软盘肯定是十分麻烦的~~我们按照新的方法来安装就轻松多了,首先,我们改bios里面的sata mode ,不同的主板上面的sata的模式是不一样的,以我同学的acer 4720z为例子。他的笔记本里面的sata模式有ahci (advanced host controller interface ) ,和ide (intergrated device environment),先设置为ide,然后开始安装xp,这样sata硬盘在ide的模式现在工作,所以xp是可以识别的,安装完了后,进入系统手动的在安装sata驱动,重新启动,就ok了。

说了这么多还有很多人不知道ide,sata,ahci的区别,说明如下:

SATA模式是将SATA硬盘映射成IDE模式,这样你用SATA硬盘装系统的时候就不需要装SATA硬盘驱动了
AHCI模式则与SATA模式相反,装系统时需要安装SATA驱动,而且貌似只有这个模式才能打开NCQ功能
RAID模式是要有两块硬盘才能实现的,具体情况可以参照一下网上组建RAID的文章,如果你只有一块硬盘就可以忽略它了

补充:NCQ是一种新的硬盘技术,简单来说开启它之后从一个程序跳到另一个程序时速度会更快,要实现它首先就要在BIOS里选择AHCI模式,然后 在装系统时安装相应的驱动(一般在主板驱动盘里有),安装好系统之后基本上就可以实现了(其实也快不到哪里去,我的硬盘已经打开NCQ了,但是也感觉不出 多快)。

ubuntu系统安装kde4

KDE和GNOME是Linux和Unix平台上最为流行的桌面环境 (KDE即K Desktop Environment)。KDE 4的首个稳定版本KDE 4.0.0已于11日发布,此次版本带来了一些较大的改变,如全新的桌面外观,新的文件管理器Dolphin等。在Ubuntu7.10下我们一样可以体验全新的KDE 4.0:

1.编辑源列表:

sudo gedit /etc/apt/sources.list

添加下面一行:

deb http://ppa.launchpad.net/kubuntu-members-kde4/ubuntu gutsy main

2.更新源:

sudo apt-get update

3.安装KDE 4.0

sudo apt-get install kde4-core

安装完成后重启,然后在登录界面的会话里就可以看到KDE4的选项了。当然在Gnome下也多了KDE的很多软件,如Dolphin、Konqueror和Kwrite等,enjoy it。

下载预装KDE 4.0的Kubuntu7.10

上面部分为引用,我的方法不一样,算了,来点图:

ubuntu distribution upgrade

直接用ubuntu的升级管理器:

#update-manager --dist-upgrade &

我在家用的是电信的,用的是cn99的源,100K左右,也挺快的, 升级完了,重新启动。在gdm的session选择中多了一个kde4:

kde4

然后就可以进入enjoy了~~~

Ubuntu发布新的BT客户端-Transmission

英文原文地址:http://tombuntu.com/index.php/2008/02/05/ubuntu-gets-a-new-bittorrent-client/

你是否曾经使用包含在ubuntu的BitTorrent客户端吗?它基本上没有用。在ubuntu 8.04中,由于BitTorrent包含了Transmission,使情况大大改变。Transmission是建立在轻量级之上,且不失为一个强大的BT客户端。它的简单和直观的界面,就是为了让任何你选择的计算机操作环境紧密的整合为一个整体。Transmission在提供实用的功能的同时呢也没有臃肿的感觉,而且任何人都可以自由的使用和修改它。 新释放版本 alpha 4 of ubuntu 8.04用Transmission代替了旧的客户端,GetDeb上有Transmission的软件包,但是在ubuntu 7.10系统下安装失败。

ubuntu发布新的bt客户端-Transmission

为什么会选择Transmission来代替更加流行的Deluge客户端了?Transmission是一个轻量级的软件,占用的资源更少,没有让普通用户觉得过于复杂的功能,并且有一个简单的界面。uTorrent是Windows下很流行的bt客户端,甚至有些linux用户通过wine来模拟运行。从Windows转向Ubuntu的用户会更加的喜欢类uTorrent见面的软件,比如Deluge。Ubuntu 8.04软件包仓库中已经可以下载最新版本的Deluge。