Monthly Archives: April 2008

上一个季节

油菜花

什么花?

四叶草

linux非root用户无声音问题解决办法

最近系统出现mplayer播放视频时候提示无法初始化声音设备现象。但是我的mpd的音乐播放是一直正常的,因此我的声音设备应该是没有问题,那么是怎么回事呢。
linux上处理声音的设备是/dev/dsp,那么我查看一下这个文件的权限。
ls -l /dev/dsp
看到一般用户是没有权限的。那么立即使用
chmod 666 /dev/dsp
然后再播放,可以放出声音了,但是这样会有问题,再下次的登录的时候,系统又会自动的把/dev/dsp的权限恢复到原来。
再看系统有用户组audio,就是可以使用声音设备的用户组,按道理,把我们正在使用的用户加入到audio组,应该就可以了。
gpasswd -a xx audio
下次启动,系统就会自动给xx用户分配声音设备的使用权限了。

石象

洗象池,峨眉山的早上,快乐的小石象。

仙境

人间有仙境,松迎缭雾行站在云雾之上、心中一片宁静。清风飘云雾,苍松照翠红,恍如人间仙境,望而流连。

五一!

看图、不说话。

中国人一起加油!2008 China Stand UP!

匹夫必看的视频、振奋,里面有句话说的真好。
最近,西方媒体整整教育了一代年轻人。
深有感触。
2008 China Stand UP!

我很想骂人

最近总是有些小丑跳出来找打。视频链接:http://you.video.sina.com.cn/b/12431769-1315923345.html4月11日,CNN主播(卡弗帝)Cafferty在一挡名为“The Situation Room”节目里说:
 “Well, I don’t know if China is any different, but our relationship with China is certainly different. We’re in hawk to the Chinese up to our eyeballs because of the war in Iraq, for one thing. They’re holding hundreds of billions of dollars worth of our paper. We also are running hundred of [...]

c编程常见错误-指针乱走

指针是c语言的一大特色、通过指针可以方便灵活的对内存数据进行操作。越是强大、好用的东西越是容易出错,昨天午夜十分通过对一段程序的跟踪,解决掉了一个大臭虫,该臭虫出现的原因就是指针乱走。通常我们在使用指针对一段内存进行操作时候,常常遇到需要递加指针来遍历内存的情况。这种情况下到底一次指针递加操作因该递加多少的问题就非常重要了。比如有一下两个指针定义:
struct node *pnode;char *pchar;
那么一下几个问题出现:
pchar++; 和pnode++;在内存中走的比特数是一样的吗?
pchar++,每操作一次递加的是一个char的长度,也就是说以char为单位递加的。而pnode++,每操作一次递加的是一个struct node的长度,是以struct node为单位递加的。而char 和 struct node的长度 如果不同,那么走的比特数就是不一样的。
从pnode到下一个node是应该pnode+sizeof(struct node)还是 pnode++呢?
从上个问题已经弄清楚 pnode +1 实际上就是走了一个node,如果+了sizeof(struct node),就走了sizeof(struct node )个node,因此将pnode指向下一个node应该是pnode++。
以上两个问题如果没有考虑清楚,绝对不要随便继续下去,因为很可能接下来的操作马上用到pnode内的成员变量,而此时如果pnode的递加是错误的,那么pnode就被指到了错误的地址,那么接下来是一定会出错的,而且这种错误是非常不便于调试改正的,因为由于进行操作的地址变了,而具体那块地址中到底是什么数据又是不确定的,那么所导致的错误类型、错误的具体地方可能都是不确定的。指针操作当慎重、谨防乱走。