分类目录归档:Linux

C/C++多线程编程介绍(1) – QuickSort

某同学写了一个多线程快排,出现了莫名其妙的问题!
今晚自己也花点时间写一个类似的多线程排序代码。对于QuickSort!一直认为,出自不同人的手,在写法上至少那么一点儿的差别。
下面是我最常用的单线程版本的写法,

int quick(int A[], int a, int b)
{
	int l = a, r = b, m = A[(a+b)>>1];
	do{
		while(A[l]<m) ++l;
		while(A[r]>m) --r;
		if(l<=r) swap(A[l++], A[r--]);
	}while(l<r);
	if(a<r) quick(A, a, r);
	if(l<b) quick(A, l, b);
}

我在Linux下使用pthread线程函数库实现多线程的排序。下面是用到的一些多线程相关的结构和函数。
继续阅读

Ubuntu10.10也可以通过蓝牙与手机通信使用GPRS拨号上网

以前以为Ubuntu实现连接手机的蓝牙modem上网会很麻烦,需要下载额外的软件,所以一直没有尝试。
最近一次使用蓝牙连接时意外地发现,Ubuntu也内置了这些蓝牙套件功能,像通过蓝牙实现的鼠标远程控制和拨号上网。

蓝牙匹配成功后,把DUN拨号上网的项目选上。


继续阅读

xxfpm: 写了一个小巧的FastCGI进程管理器

经测试,支持Win32和Linux-x86平台。对于用php的人,有了这个东西来维护一定数量的进程,就能制服经常崩溃退出的php-cgi啦!!!

Usage: xxfpm path [-n number] [-i ip] [-p port]
Manage FastCGI processes.

-n, –number number of processes to keep
-i, –ip ip address to bind
-p, –port port to bind, default is 8000
-u, –user start processes using specified linux user
-g, –group start processes using specified linux group
-r, –root change root direcotry for the processes
-h, –help output usage information and exit
-v, –version output version information and exit

第一个写得比较标准的终端应用程序,我是看了cygwin的里的一些源代码,然后学会了如何使用getopt,算是写得比较标准的,但是代码也不短。

使用例子:
xxfpm z:/php5/php-cgi.exe -n 5 -p 8080

有人问,如何给程序加入参数?这个不难,使用双引号即可,路径要用”/”而不用”\”。例如要指定php.ini的路径,可以用下面例子:
xxfpm “z:/php5/php-cgi.exe -c z:/php5/php.ini” -n 5 -i 127.0.0.1 -p 8080

继续阅读

转载:ubuntu root用户没有声音(提示”正在等待声音系统响应”)的解决方案

原著:http://blog.csdn.net/liuzhenwen/archive/2010/11/08/5996164.aspx

在ubuntu 10.04中,默认是pulseaudio来管理音频设备的,而pulseaudio不允许在root用户下运行,这样会导致安全问题。因此不能能改系统 音量,打开声音首选项也一直是“正在等待声音系统响应”。
直接运行pulseaudio会得到这样的提示。

root@copfee:~# pulseaudio
W: main.c: 不应以root身份运行本程序(除非指定 –system)。

如果加上 system参数也不行,很多模块会禁用。

解决办法有很多种,出于安全性考虑可以安装GNOME ALSA 混音器来管理音量,不过系统音效依然听不到。第二种就是修改pulse默认配置文件使得能运行在root权限下。
编辑/etc/default /pulseaudio

root@copfee:~# gedit /etc/default/pulseaudio

修 改以下两处

PULSEAUDIO_SYSTEM_START=1
DISALLOW_MODULE_LOADING=0

改 为1和0,表示允许运行在system环境,允许动态加载模块。
这样修改后带来一些负面影响,可以仔细阅读这个文件的注释。

晚上写了个FastCGI进程管理器

之前一直使用单个进程都php-cgi。存在一个很严重都问题就是,php-cgi不稳定导致程序异常退出时,需要外部程序重新启动php-cgi。而且因为socket还要等待一段时间才能断开,所以要等一段时间(大概30多秒)才能重新启动成功。这样就产生了一段时间无法使用php都网页,很是烦恼。之前就一直想写一个php-cgi都进程管理器。
继续阅读

便携的Ubuntu系统在别的电脑上跑起来

    我的笔记本今天叫朋友帮我托送回家啦,我留下了移动硬盘。今晚在用同学的笔记本时发现Windows7有密码,于是插上自己的移动硬盘,顺利地进入了系统。登录时提示无法正常启动X(无法加载ATI驱动程序导致),然后选择了使用临时的推荐设置。测试了声音,声卡已经可以正常工作(很少见有Linux不支持的声卡)。以太网卡也支持了,但是无线网卡不能用。在受限驱动里看到下面的内容:

 

继续阅读

反色一下,眼睛更舒服!

我晚上睡觉前偶尔用手机上网看看今天的新闻,这时候把屏幕设置为反色能够减弱屏幕亮度,原来白色的网页背景换成了黑色。眼睛感觉舒服好多,没那么刺痛,文字显得格外明亮。纯属个人感觉,不知道在别人的眼睛里会如何。。。

Ubuntu下安装了compiz之后,有一个反色的选项,默认应该是开启的,只要按下快捷键Super+M即可对屏幕反色。按下Super+N可以对单个窗口反色。现在觉得这功能很有用,不过用来看照片的话,你就只能看到胶片了,哈哈!!!

继续阅读