[APUE] dup 的小测试

#include 
#include 
#include 
#include 

int main()
{
    char a[10] = "std in\n";
    char b[10] = "std out\n";
    char c[10] = "std error\n";

    write(0, a, sizeof(a));
    write(1, b, sizeof(b));
    write(2, c, sizeof(c));
    return 0;
}

mattchen@ooxx:~/code/dup$ ./a.out 
std in
std out
std error
mattchen@ooxx:~/code/dup$ ./a.out 2>&1
std in
std out
std error
mattchen@ooxx:~/code/dup$ ./a.out 2>&1 >tmpfile
std in
std error
mattchen@ooxx:~/code/dup$ ./a.out >tmpfile 2>&1 
std in
发表在 C, 编程 | 标签为 , , , , | 留下评论

SHELL 编程代码阅读

1. $# 表示传入参数个数,例如 ./a.sh input_file 这里 $# == 1

2. $1 表示第一个传入的参数

3. [ -f "somefile" ] 判断是否是一个文件, 猜猜 [ ! -f "somefile" ] 是?

	PS:
	[ -x "/bin/ls" ] 判断/bin/ls是否存在并有可执行权限
	[ -n "$var" ]    判断$var变量是否有值
	[ "$a" = "$b" ]  判断$a和$b是否相等

4. cat $file | grep -v '^$' > $file.1 去掉空行

   grep -v '^$' 表示获得除空行以外的行 $file.1 表示临时文件

5. $? 上个命令的返回

	if [ $? -ne 0 ]; then  如果上个命令返回值不为0
	fi

6. if [ -z "'echo $LINE | grep -v ^$'" ]; then
  	continue
   -z表示字符串为空,这里的含义是检查空行或者全部由空格,制表符组成的行

7. TMP=$(echo $LINE|awk '{print $1}' 去LINE字符串中空格分割后的第一个值

8. SHELL 中可以定义函数,例如:

	Get_ans()
	{
	...
	}

	使用$1获得调用时后面传入的参数

9. expect ooxx.exp $IP $PORT $USER $PASSWD 
 
 使用expect脚本远程交互

参考链接:
shell编程简介(zz)
linux grep命令

发表在 编程 | 标签为 , | 留下评论

Python 解析 HTML

今天突然想去下点评书放到手机里听,找到个网站,放眼望去116个链接,平均一个要点五次鼠标,实在懒得去点,折腾下写一个python吧。

具体代码:

import sys, urllib, re
from BeautifulSoup import BeautifulSoup

local_type = sys.getfilesystemencoding()

for i in range(1, 2):
    url = 'http://www1.5ips.net/down_45_' + str(i) + '.htm'
    wp = urllib.urlopen(url)
    content = wp.read()
    soup = BeautifulSoup(''.join(content))
    outstr = soup.findAll('a', href=re.compile("^http://p186"))[1]
    print str(outstr).decode("UTF-8").encode(local_type)

遇到一些问题,例如Python在windows命令行里会有乱码,例如BeautifulSoup太飘逸一下适应不了等等,不过细心上网查查,试一试就好了,这个代码会提取出下载页面中的链接,接下来就是保存到文件了。需要下载116个链接的话把i的范围修改下就好。

参考链接:

Beautiful Soup 中文文档

基本的 HTML 标签

Python中文乱码
发表在 编程, 网络 | 标签为 , | 2条评论

密码保护:许多事情的合辑

此内容受密码保护。如需查看请在下方输入访问密码:

发表在 无法分类 | 标签为 | 要查看留言请输入您的密码。

[转载]怀疑精神&考据精神 —— 宇宙的心弦

       今天早晨起床后,便看到人人网上满屏幕都是转发的这样一条状态:“35,一个神奇的数字。动车相撞35人死亡,河南平顶山矿难35人死亡;鄂湘暴雨造成35人死亡。知道为什么死亡人数控制在36人以内吗?超过36人,市委书记这个级别的要撤职,所以一开始发生,就注定了死亡人数不会超过36。”相信常上人人网和微博的同学都看到了这样一条状态。当时我就很震惊,很义愤填膺。可是仔细一想我就开始怀疑这条状态的真实性,于是我并没有转发这条状态,而是发了条状态求证此事的真伪。这条状态没发出多久,就看到辟谣贴逐渐出来了。其实要想验证这条状态的真伪很简单,只要Google一下“河南平顶山矿难”,就可以看到2010年的来自网易和新浪的新闻写道,河南平顶山矿难47人遇难;鄂湘暴雨这种两个省份的自然灾害,跟市委书记有什么关系。基于这两条信息,就可以基本判断这条状态属于自己捏造的。而后来的事实证明(来自18点左右的搜狐新闻),现在动车组追尾事故的死亡人数已经达到38人。而这38人毫无疑问仍然还是有所隐瞒的,在这之后应当人数还会继续上升。这篇日志的目的,其实并不是在对这条状态辟谣,因为这个谣言假的有点太明显。我只是想把这个作为一个引子来表达一下我的观点。

继续阅读

标签为 , , , | 留下评论

樱华月

[audio:http://www.seenthewind.com/./wp-content/uploads/2011/07/yinhuayue.mp3]

多听歌。
暂时的更新,什么时候有空重新写篇正紧的文章。

标签为 , | 一条评论

[OS] Plan 9 has been forked

"Plan 9 has been forked to start a development out of the Bell Labs (or whatever they are called these days…). This true community-approach allows further development of Plan 9, even if the shrinking resources at Bell-Labs for Plan 9 are vanishing. The homepage and thecode can be both found at Google code. You can boot 9front from the regulary built live cd or build the binaries in your existing Plan 9 installation. Installation instructions and further information can be obtained at the 9front wiki."

 

Plan 9 是贝尔实验室计划开发的下一代网络操作系统, 不过最新版本停留在第四版.

最近Plan 9托管到了 google code , 有了他的开发社区,并且更新了吉祥物。

Space Glenda原本的吉祥物: Glenda

image  现在的吉祥物:⑨(又称 琪露诺,东方幻想乡人物,幻想乡最强⑨)

 

你可以用通过live cd试用或者自己编译一个

发表在 网络 | 标签为 , , | 留下评论

VIM 使用小记

发现VIM功能比想象的强大太多,一直没把整个文档看一看,有些命令用过就忘记了,这里整理一下。

另:文章没有详细介绍命令的打算,如果不清楚请查阅vim自带的帮助文档。

g/rmvb/d  删除包含rmvb的行
v/rmvb/d  删除不包含rmvb的行

split 分割窗口 vsplit竖形分割
close 关闭窗口

%s/four/4/g 把所有包含four的单词替换成4

 

image

发表在 编程, 网络 | 标签为 , , | 留下评论

推荐阅读:《我在赶集网的两个月》

引子:

很好的一个流水帐,很好的一个实习生案例,很好的一个职场现身说法,很好的用数据说话的实战例子,很好的鲶鱼!请仔细阅读,尤其是你们中刚刚踏入职场没几年的年轻人,看看一个大三的北邮学生是怎么震了赶集网的销售、数据挖掘、竞情分析、产品、团购、运营和电话销售

引用赶集网YJ先生对这位大三实习生的褒奖邮件中几句结论,共勉:

2.以结果为导向  
任何工作活动,都要有结果,要清晰的知道目标和目的,得有实现结果的”势利眼”。为实现目标,谁都可以随时站到全局看问题,技术人员可以站在商务角度考虑问题,产品也可以了解一定的技术思路,这些方式、技术、工具、能力,都只是手段,甚至都不是最重要的,最重要的是随时知道想要的结果是什么,知道大家共同的目标是什么。  
不该以”苦劳”来论成绩, BUG 百出的代码,看似忙碌,实则是一种破坏;冗长的会议也不好玩,没有结果的会谈任何人都该随时中止。  
3.共生而不是惰化  
一个人做不成任何事情,甚至都生存不了,人只有与组织共生。但组织大了常会有个体的依赖, 1+1<2 ,甚至 <1 ,最后整个组织都烂掉。我们不需要组织性惰化,我们需要每个人都时刻警醒:自己是否为别人提供了有价值的付出,自己是否帮助到了团队同事;自己是否变懒了,自己是否在抱怨各种所谓的不公。  
4.挖掘自身的价值  
每个人都有别人不及的价值,我们在工作中都需要千方百计的把自身这些独特的价值挖掘出来,不用拘泥于现有思路,更不用局限于已有的经验。要敢做,要尝试不同的方式,同时也要尊重自己以外的每一个团队成员的价值。每个人都这样做,才能整体而全面的超越对手。

继续阅读

发表在 网络 | 标签为 , , | 留下评论

7.11 留给自己

盼望就是指望善良之事,使心灵与丰富的神相连;

而欲望充满非理性的渴念,使心灵与身体相连。

愚拙者,不喜欢安逸和平静,从来不会坚定而稳固的植在任何一条原则上,这是他们本性使然。

如立法者所说,他的整个性命悬计无定,没有坚实的根基,总是任凭兴趣拖前扯后,东飘西荡。

所以立法者在另一处说“被挂的人是在神面前受诅咒的” 《申命记》二十一章,23节。

标签为 , | 留下评论