Jan 14

还是不转了,看qy的原文吧:

http://cqy.spaces.live.com/blog/cns!5C4B1EF5FD50EDD5!3266.entry

Jan 13

背着笔记本,行走于宿舍和实验室之间,每次都要修改ip,一个要设成静态ip,另外一个是动态ip,小小研究了一下,写了两个脚本来做,以后不用点鼠标了,^_^

脚本lab.bat
netsh interface ip set address “LAN” dhcp
netsh interface ip set dns “LAN” dhcp

脚本lab.bat
netsh interface ip set address “LAN” static 59.66.96.123 255.255.254.0 59.66.96.1 1
netsh interface ip set dns “LAN” static 166.111.8.28 primary
netsh interface ip add dns name=”LAN” addr=166.111.8.29 index=2

其中LAN是我的局域网连接的名称。更详细的解释,参考netsh命令的帮助,或者查看“如何在命令行更改ip地址”。

如果对用Python完成这个工作感兴趣,请看“用Python干实事: 自动修改Windows的IP、网关和DNS设置”,呵呵。

Jan 12

楼下的黑板上,大字写着:求领导把门快修好!

周围无数回复:顶、沙发、强Re、置顶……

最下边一行:领导回复,奥运会之前修好。

 

灌水无处不在,真是网络时代的黑板啊!

 

nokia012

Jan 09

每晚,从西门骑车进来后,开始下车步行,一路走回宿舍。落叶树丛和慵懒的灯光,冷冷清清的道路,宁静的冬夜,仿佛时间开始放慢,开始静止。毕业已经不远了,也就几个月时间,一把手数得过来,还有很多需要做的事情。

越来越习惯步行了,步行去实验室,步行去食堂,步行回宿舍。时间飞逝让人窒息,DH中有句台词,大概是 they forget to stop to smell the flowers of the summer……

Jan 09

一帮人去森林公园,很大的森林公园,和其他人走散了,一个人带着所有装备。时间是下午,安静地下着大雨,雨是透明的,空气也是透明的,总之很安静地下着大雨。在一个貌似山村的地方逡巡,不留神遗失了所有的装备,问题是这些装备大都是别人的,应该很昂贵的,于是很郁闷地说:生活好艰难。其实,这是一个梦境,为什么去森林公园呢,我也不知道,现实中只去过共青森林公园,在另一个城市。好,梦境的第一幕,结论是生活好艰难。

第二幕是在住处,我的手机爆炸了,炸了四次,发出四次巨响。每次爆炸后,手机发生变身,依次是透明外壳型、古典笨重型、小矮人型……迅速切断房间电源后,回来检查,发现手机没事,而笔记本被炸坏,屏幕严重变形,一片狼藉……于是想:生活还能再艰难吗?……于是醒了。

这两幕倒是有趣,记录一下,^__^

Jan 06

GNU make 有许多预定义的变量,这些变量具有特殊的含义,可在规则中使用。下表给出了一些主要的
预定义变量,除这些变量外,GNU make 还将所有的环境变量作为自己的预定义变量。

预定义变量????????????????????? 含义
$*????????????? 不包含扩展名的目标文件名称。
$+????????????? 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
$<????????????? 第一个依赖文件的名称。
$?????????????? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
$@????????????? 目标的完整名称。
$^????????????? 所有的依赖文件,以空格分开,不包含重复的依赖文件。
$%????????????? 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称
??????????????? 为 mytarget.so(image.o),则 $@ 为 mytarget.so,而 $% 为 image.o。
AR????????????? 归档维护程序的名称,默认值为 ar。
ARFLAGS???????? 归档维护程序的选项。
AS????????????? 汇编程序的名称,默认值为 as。
ASFLAGS???????? 汇编程序的选项。
CC????????????? C 编译器的名称,默认值为 cc。
CCFLAGS???????? C 编译器的选项。
CPP???????????? C 预编译器的名称,默认值为 $(CC) -E。
CPPFLAGS??????? C 预编译的选项。
CXX???????????? C++ 编译器的名称,默认值为 g++。
CXXFLAGS??????? C++ 编译器的选项。
FC????????????? FORTRAN 编译器的名称,默认值为 f77。
FFLAGS????????? FORTRAN 编译器的选项。

出处:http://www.aka.org.cn/Lectures/001/Lecture-1/make.html

Jan 06

遍历并打印linux的环境变量的代码片段:

#include <stdlib.h>

//The ENVIRON variable contains the environment
extern char** environ;

int main(){
        char** var;
        for(var = environ; *var != NULL; ++var){
                printf("%s\n", *var);
        }
        return 0;
}
 

如果需要读取、设置或清楚环境变量,请分别man这几个:getenv、setenv、unsetenv。

Jan 06

1. 包含getopt.h
2. 定义短选项,比如,ho:v
3. 定义长选项结构,注意最后一项全部设为0
4. 未定义的选项,解析时会返回’?’
5. 含有参数的选项,参数存于全局变量optarg中
6. 非参数选项的起始索引,存于全局变量optind中

示例程序如下:

#include <stdlib.h></stdlib.h>
#include <stdio.h></stdio.h>
#include <getopt.h></getopt.h>

const char* program_name;

void print_usage(FILE* stream, int exit_code){
        fprintf(stream, "Usage: %s options [ inputfile ...]n", program_name);
        fprintf(stream, "    -h   –help        Display this uage information.n"
                        "    -v   –verbose     Print verbose message.n"
                        "    -o   –output filename    Write output to file.n");
        exit(exit_code);
}

int main(int argc, char* argv[]){
        int next_option;
        const char* short_options = "ho:v";
        const struct option long_options[] = {
                {"help", 0, NULL, ‘h’},
                {"output", 1, NULL, ‘o’},
                {"verbose", 0, NULL, ‘v’},
                {NULL, 0, NULL, 0}
                };
        const char* output_filename = NULL;
        int verbose = 0;
        program_name = argv[0];
        do{
                next_option = getopt_long(argc, argv, short_options, long_options, NULL);
                switch(next_option){
                        case ‘h’:
                                print_usage(stdout, 0);
                        case ‘o’:
                                //the global var optarg contains the specified argument
                                output_filename = optarg;
                                break;
                        case ‘v’:
                                verbose = 1;
                                break;
                        case ‘?’: //if the arg list contains invalid options
                                print_usage(stderr, 1);
                        case -1:
                                break;
                        default:
                                abort();
                }
        }while(next_option != -1);
        printf("[option] verbose: %dn", verbose);
        printf("[option] output: %sn", output_filename);
        if(verbose){
                int i;
                //the global var optind contains the index of the first nonoption argument
                for(i = optind; i<argc;></argc;>                        printf("Argument: %sn", argv[i]);
                }
        }
        return 0;
}

相应的Makefile:

CC=g++
CFLAGS=-Wall -g

all: getopt

getopt: getopt.o
        $(CC) $(CFLAGS) -o $@ $@.o

%.o: %.c
        $(CC) $(CFLAGS) -c $+

clean:
        rm -f *.o
        rm -f getopt

Jan 03

某年某月某日某次聊天,说到北京的气候,我说:I and most of my friends…we hate the climate here, but we love the city!

对于我,北京的气候就一个字:干。刚到北京时,常常嘴唇干裂开来,流出的血被氧化变黑,恐怖的样子。

两年多来,已经适应到临界点内。这一感冒,马上嘴唇又开始干裂了,喝下的水,仿佛倒入沙漠,很快消失的无影无踪。这气候,难道也要适应四五年? :P

Jan 01

不妨乐和一下:

large-full.jpg

出处:http://benson-freesia.spaces.live.com/blog/cns!5A86A095980B8C80!418.entry