在Linux下,某些涉及到底层或系统级操作的程序,如tcpdump、wireshark等,我们不得不以root(高级用户)权限运行方能正常工作,我们在设计居如此类的程序时,能否在程序内部判断程序自身是否以root(高级用户)权限运行,以便于提示用户切换到高级权限下运行呢?答案是肯定的。 阅读全文
Linux下,如果某些程序启动的时候没有加上绝对路径,直接在当前目录用“./程序名 参数表”的方式启动的话,使用ps或者top命令查看后台进程的时候,显示的Comand栏也只是“./程序名 参数表”的形式,为了找到该程序的绝对路径,想必大家最先想到的是用find命令全盘搜索,但是这样做的代价太大,而且当有多个同名文件时还不一定能区分开来,这里教大家一个更简单有效的办法。 阅读全文
iPhone装了太多软件,很多也不常用,为了找到常用软件,屏幕不得不划来划去,于是决定把不常用的软件卸载,由于很多都是采用Cydia安装的,所以卸载的时候也不得不使用Cydia,可是在卸载很多软件的时候,警告我说会同时卸载很多相关的依赖,而这些依赖又是Cydia程序本身所依赖的,犹豫了好久,强制将其卸载了,但是当我退出Cydia的时候,悲剧的事情发现了,Cydia的桌面图标不见了。 阅读全文
iPhone上运行的iOS系统跟Linux一样,都是基于Unix内核的,所以iPhone的后台iOS目录结构跟Linux极其相似,就连很多常用命令也通用,包括cd、ls、pwd、cp、mv、tar、chmod等几十种命令,在此就不依依列举了,就连某些很不常用的命令,像scp、ssh之类的跟远程加密登陆相关的命令也支持,这不禁让我们猜想是否能够用Linux下的SSH命令登陆iPhone后台呢?答案是肯定的。 阅读全文
我们在实际应用中很可能遇到这样的情况:客户端与服务器之间已经建立了TCP长连接,他们之间正在进行数据通信,尚未主动执行close操作的时候,突然一方拔掉网线或者断电,双方会因为无法交互断开TCP连接的握手包而一直无法确认是否与对方断开连接。这个时候执行read或recvfrom操作会因为无法收到数据使得进程一直阻塞着而不会返回错误,write操作因为是向缓冲区内写数据,只要缓冲区未满则也不会返回错误。这样,异常断开的TCP连接所绑定的套接字(文件描述符)已经没有意义了,但仍然占用着一个位置,倘若不处理,无意义的套接字(文件描述符)累加到1024时,系统会因为无法再分配新的套接字(文件描述符)而无法接受新的TCP连接。 阅读全文
2011年10月26日,金山办公软件副总裁章庆元在自己的新浪微博上发布WPS for linux截图,图上显示WPS的Linux版本正运行在Ubuntu系统上,目前已被转发六百多次,评论三百多条,成为他冷清的微博上最火爆的一条。章庆元还爆料到,WPS for Linux版本采用纯生C++借助诺基亚Qt开发,春节后会出第一个社区测试版,就看Linux版本跟2012谁先来了。 阅读全文
想必大家使用Ubuntu或其他版本Linux系统上网的时候,常常遇到这样一种情况,如果电脑同时连着有线网络跟无线(Wifi)网络,系统会默认(优先)使用有线网络,即使用有线网络的网关作为默认路由。这种情况下,如果无线(Wifi)能上外网,而有线却只能上内网,则系统因为默认走有线路由而无法上外网,唯一便捷的解决办法便是断开有线。然而在某些情况下,我们既需要连接无法上外网的有线(如与有线局域网内的他人共享文件),又需要通过无线(Wifi)上外网,这样就需要更改系统的默认路由了。 阅读全文
我们知道,一个程序至少有一个进程,而一个进程至少包含一个线程,对于单进程单线程程序,要想完成多任务,一定是单步顺序执行的,即多个任务无法并发执行,一个任务的开始需要等待前一个任务的结束,对于并发性要求极高的服务器程序来说,单线程显然无法高效地处理任务。这时我们可以考虑采用多进程或多线程机制来封装程序。 阅读全文
为了将代码移植到iPhone等运行了iOS的设备上,我们不得不百般地顺从iOS系统的特殊性,Linux上普通的文件描述符(套接字)超时时间设置在iOS上无效,前面那篇文章“实现超时返回的gethostbyname函数”曾试过采用时钟与信号实现超时返回,但因为某些尚未查明的原因,加了信号与时钟以后,程序会莫名地崩溃,这促使我们使用最保险的select函数来实现超时返回。 阅读全文
之前写过一篇专门针对iPhone4的电脑共享手机网络(中国移动、中国联通或者中国电信皆可)上网的教程名为“笔记本连接iPhone上网”,如今iPhone4丢了,在iPhone5未上市之前用刚买过来准备送给爸妈的两个诺基亚3208c过渡一下,正好国庆回家,家中未装宽带,为了上网,只能借助中国移动的GPRS网络了,手机上网还是有很多局限性的,比如我想在Wordpress上为博客发布新的文章,手机就没法办到,这样一来,笔记本共享手机网络上网就势在必行了。 阅读全文