户外_徒步 - 霞客户外 - Are You Hike?

驴行、摄影、户外 - 一地一视觉、一路一过程
欢迎光临 户外_徒步 - 霞客户外 - Are You Hike? 登录 | 注册 | 帮助
位于 搜索

霞客户外 - 旅行

  • 秦晋之好(19)西安

    最后一站, 长安。

    2009.10.10

    傍晚从韩城到西安,住七贤庄。夜逛回民街吃东西,简单说,不咋地。。。面向大众旅游者的街区,也就这样了,不能期望。 吃完太晚了,来不及去易俗社听秦腔或者去高家大院看皮影了,喽了一眼钟鼓楼回去睡觉。

    2009.10.11 陕西历史博物馆-碑林-都城隍庙

    早上起来去七贤庄的炕上写明信片,又欠童稚抓了只小猫给我放膝盖上取暖用,果然很温暖,那小猫看我写了一会字,在早晨下雨昏昏然的光线中睡着了而且打起呼来。

    到陕历博排队,排好进馆了睡懒觉的土豆卡车等人才来,拍好会师照就各奔东西。

    陕历博的舞马壶进京了,但是还有很多精品。这个博物馆的特色是老外来得多,据说老外的第一次跟团中国游普遍地就是北京+西安,白天看庙晚上睡觉, 然后回家各找各妈。另外在馆里听到的语言种类比较丰富,英语大概占了一半不到,能听得出的就有法语德语西班牙语俄语希伯来语日语,听不出的还不晓得了。

    没租讲解器,不晓得这是不是摩尼僧了

     

    驮了只乐队的骆驼很强大。

    我好想要一个以这个豹子瓦当为模板的冰箱贴。。。不过后来没买到,只买了只白虎的。顺便说冰箱贴馆内外差异很大

    碑林,以前是西安府文庙。。。著名的景教流行中国碑被罩在罩子里,拍照也拍不出来。把七个厅的几乎每块石头过了一遍,我主要看书法其实,字不可能全看完的。最后一个厅里是明朝的藩王复刻的一个书法全集,竟然有石头装倒了。

    碑林的石刻馆又悲剧了,佛教石像馆在整修。。。还好看到了昭陵六骏中的四均,有人说其实四骏并非全是真品,我看了半天眼睛花

    这一对走兽是在某厂的工地里挖出来的,原主人已经无考了,看样子应该东汉吧,神兽的腰身长而且美,典型的中国美女身材

    这里也展出了不少绥德汉画像石,不表,其实最好的精品貌似也没有拿出来,另外据说汉画像石很容易造假。有个唐代石馆的雕刻很精致

    最后一站,西安都城隍庙。庙的正殿和舞台的屋顶上竟然长出了小树,瓦沿里草长得很茂盛,在如注的大雨下岌岌可危的样子。据说这也是国保,看来国保和国保命运相差很大啊。

     

    正殿的木雕窗花简直就像蕾丝做的,研究了一会才从另外一个破损的窗上看明白了,是两组木条用60度相交,另外一个60度是木条上伸出来的翅膀。精巧。

    最后一天,连运动鞋都在雨中走坏了。。最后光脚人字拖上的飞机,回到魔都。看到的太多,来不及感慨。

  • 秦晋之好(18)韩城

    2009.10.9

    从稷山出发,在河津开过黄河大桥, 下高速就到了陕西韩城。在市区吃了顿饭,打车去东北方向的党贾村。韩城一带看起来都是平原,党贾村在平原边上往下去的一个山沟里,很是不显眼,也很易守难攻。已经过了国庆节,村里见不到游客了。夜游全村玩光影。穿黑衣服玩效果会比较惊人,我的衣服太亮了

    这次旅行我们在碛口、吴堡、师家沟都住了窑洞,虽然这里也可以住窑坑,我们终于住腻了,都表示要睡席梦思床~

    2009.10.10 大雨 这天全天下大雨,严重影响了游览的心情,但是现在回头来翻照片,还是看到了很多东西的

    先是山上的党贾村泌阳堡,可以俯瞰党贾村

    每家门口都有石雕门柱石,大部分是这个饕餮,也有人是渔樵问答,也有一些人家是文房八宝石雕,谨慎怀疑是回回,不能用人物或者动物

    然后叫车去韩城元代建筑博物馆。这个馆很多人都去过,网上可以搜到很多照片,不多贴照片了。发现元代建筑的一大特点就是“行蛮”,经常把大材用来作可以减柱的梁,但是往往也不减柱。高神庙三殿斗拱间用这样的华拱来装饰,其实很山西。当然,其实韩城在历史上就是很山西,战国时吴起开西河,魏国在这里和秦国对峙了一段时间的,韩城有几处春秋战国时期墓葬都是和晋-魏有关系。

    这个博物馆在后面山上还有未开放的一块,叫萝莉去找馆长要求,果然获批准。由此可见,虽然某些同志喜欢抱怨“我很内向的”“为什么又是我”,可是这个世界就是酱紫,不喜欢却又把工作完成得很好的人类比比皆是。打着伞拍出来雾蒙蒙,这个紫云观的鸱吻很华丽

    韩城新市区的南面山坡下是韩城旧城, 格局和汾城一样,最北面是城隍庙。城隍庙正在修缮,至少就木作而言,只是替换掉旧的部件,新旧掺杂,有理由相信没有走样。正殿和前配殿之间的空隙用了一个木制人字梁遮蔽,比较奇特,相机拍不出来,自己去看吧。

    城隍庙的戏楼是在正殿西南方向,门东向,有点奇怪,东南方向对称线上无建筑,谨慎怀疑有缺失。这个戏楼木工很精巧,强烈建议进后台一窥

    回头看看城隍庙的屋顶,一路过来其实有很多,山西人很喜欢在屋脊上放歌这样的小房子,有点两汉陶楼的意思。还有妇人半掩门的呢,我竟然都没拍,留一个作纪念。

    城隍庙南面就是关帝庙和文庙。文庙现在是韩城博物馆,要收门票的

    七龙壁。后面武庙(关帝庙)有个三龙壁。我觉得孔夫子和关将军都好去闹待遇来,孔子明明被封了皇帝的,哪能只有七龙,应该九龙哈。。。

     

    泮池边的花朵在雨中格外娇艳

    这个石柱不知何为,下面的爪子抓的鱼身都凹下去了,可怜的鱼。。。上面爪子抓了颗人头(!)颇有蒙古人的风范。。。

    左边这位菩萨姐姐好像胸口挂了花环

    这应该是一组道教石雕,石质很好,头不知在国外哪个博物馆,真可惜

    大成殿。栏杆每一格都是龙,但都是不同风格的,我很喜欢边上这个上古青铜器纹的,其实做成T shirt也满好

  • 秦晋之好(17)稷山

    2009.10.9

    下午我们就到了稷山。虽然我一向很反对白天运动,但是县与县之间距离比较短,带来的overhead还是可以接受的。著名的稷山青龙寺壁画,站在它面前很激动的,人、鬼、神三界俱全

    青龙寺对面就是金代古墓博物馆,非常典型的北宋-金砖雕墓,但与北宋比,有更多杂剧戏台的内容。以前都是在博物馆里看到,现在钻到地底下看还是很凉快很有氛围的

    回到稷山县城就坐车去陕西韩城了。

  • 秦晋之好(16)新绛

    因为很多人反映在大陆看不到picasa相册,我在这篇试验一下用谷歌日本相册,看得到看不到都可以给我留言。

    2009.10.9

    虽然名字里有个新字,但此新绛和New York/New South Wales可不一样,其实它和新郑一样,在春秋时期就"新"着了,是晋国核心统治区。山上的这座塔是市区中心。此塔下面有个山寨版家乐福超市,对面还有个山寨版东方明珠,看得我们一愣一愣的。山下的巷子里,几乎每个三岔路口都有泰山石敢当,没见过那个没有的,说起来这里三岔路口也真多。

    塔东面有文庙;不过我们的重点是新绛三楼、新绛教堂、新绛大堂。先去新绛教堂,在高高的山上俯瞰城市,据说是看日出日落好地点,可惜早上大雾了。

    又是无人的教堂,发现他们的乐队竟然有笛子、钹、锣、排锣、小提琴等等混杂,真想观一场弥撒看看到底什么效果。另外发现,又欠同志竟然可以当乐谱翻译机用,哈强。。。

    这是我见过的最美丽Maria像!脚下的玫瑰花圃花也开得很好

    下山去另一座山头上的新绛三楼,这是站在鼓楼门口拍的乐楼和钟楼。

    绛州大堂,现在在新绛中学的后门里面,周边都是女生宿舍。据说防流感,不让进,磨了半天才让我们进去看看。因为梁枋用材巨大,这个建筑减柱减得厉害。墙上嵌有宋真宗手书的诏书石刻一枚。

    虽然山西出了很多煤老板,可是老板们似乎不在本地消费,都跑帝都买房去了吧,也不给本地人创造更多非资源类的就业机会,山西的物价水平大大低于我么的想象。这样很甜的柿子竟然才卖3毛钱一斤,便宜得我们觉得像抢劫。。。

    发表于 五月 04 2010, 02:36 下午 作者 Mach de Bagua
    标签:

     

    上面门是锁着的,后来遇到了傅先生才帮我们从文管所要了钥匙进去看。门背后就是一个过街戏楼也是铺满斗拱

    正殿左右两边有钟鼓楼

    正殿前的转角狮子

    文庙戟门,龙抓鱼

     

    文庙正殿的老虎柱头,想起师家沟的那个牌坊

    两侧碑廊石碑很多,著名的有文徵明碑

    文庙大成殿从后面看,现在还是粮库格局。玫瑰花所在处就是汾城文管所。画面最右边的台子上本来应该有个藏书阁,2004年倒塌。

       

    在东面的一条街上找到关帝庙,现在是民居,还是傅先生找熟人开门。此庙北面一个小洋楼是民国时期的县政府。

     

    关帝庙往西,一个幼儿园内有旧县衙大堂,现在也改成了粮库,摧残得很。幼儿园内有一高处可以俯瞰汾城,看到鼓楼和学前砖塔。

    学宫(文庙)前的某处民居,有精彩的龙纹和文房八宝木雕,下面的莲瓣不知何为

    社稷庙,在汾城医院里面

    此庙的配殿木雕及其精美,并有彩画痕迹。不知道这个订上去的小方块何解

    又是龙擒鱼

    其他如洪济桥,桥头的醋厂、汾城城墙等不一一贴图了。被傅先生教育了一番,说我们的计划太粗略了,汾城周围还有很多可看的。是啊太走马观花了,我觉得山西最好还是开车去,一路公交真的很折腾。。。据说可以去汾城影像或者百度太平贴吧去了解更多汾城信息。又欠对这城的评价是,未开发前的平遥。据说马上要开发旅游了,算是好事还是坏事呢,我不知道。

  • 秦晋之好(14)师家沟

    从霍州鼓楼往西走一点过汾河桥就有去汾西县的公交车。我们去僧念镇的师家沟村,这个地方让又欠大为惊讶,问了我两次“你怎么知道这个地方的?”。其实答案很简单,定路线的时候我找了一个“山西省全国重点保护文物名单”,一边看一边往地图上标。国保第六批(2006年)里有这个师家沟,看着离霍州也满近的,那就来看看呗。而且我出门喜欢住小地方,我就没打算住霍州,一心只想在霍州周边找个有趣的乡村住住,师家沟符合这个条件。

    话说公交车在小雨中爬上山岗,扭过很多极其烂的石子路面,把我们放在只有十来间房子的僧念镇。我嘴巴都撑圆了,这里也能叫镇?好在街上有几辆揽客的面包车,速度包车去了师家沟。后来我们才知道霍州到师家沟的旅游公路在我们来的那天刚刚修通,后来回霍州走的那条路,路面很好坡度也小的柏油马路,可以从霍州直接去,不经过僧念了。

    在和恶狗搏斗了一番之后终于到了师家沟,关键时刻雨伞还是很有用的。这个牌坊的柱额上有两只虎脸,比较稀奇。旁边推三轮车的民工在做旅游公路的最后收尾工作。

    从这里进沟,原来这种柱子真是拴马用的,因为上面很陡不好走了。以前都是在博物馆里看到

    当务之急是找个住处,天已经黑了。村口小卖铺家的女主人让我们住她家的窑洞四合院,以前是一个大地主的房子。门就有两重伊港

    正门的门柱,覆盆莲花加连珠纹,倒是各个时期的特点都有

    门上的木雕牡丹和万字纹+琴棋书画,还有那像鸭舌头一样伸出来的是什么看不懂

    全貌

    放下行李到处乱逛,进入一家没人住的院子,三重门都有字很漂亮的匾。话说现代人的境界真是差古人太多呀。。。

    我们住的附近的一个大院,可惜门锁上了,非常大,我相信里面一定有好看的木雕。但是这个正门上的匾的边框很令我惊讶,童子缠枝莲花,和苏州双塔院的一样,典型的北宋-金风格。虽然看这个院子,我觉得多半是清朝的,这种小地方往往遗留古老传统,所谓礼失求诸野啊。

    有耳环的羊

     

    村里其实人丁不多,大多数人都出门打工去了。遇到这位老汉,他说以前村里家家户户养驴,现在就他家还有这一只了

    他很热情邀请我们到他家去坐,真是石榴院落啊,前方是正门方向,进来有堵影壁

     

    还热情地请我们吃醉枣,醉枣真好吃啊真好吃,酥软可口!

    天黑了,小羊回房间睡觉吧不要被大灰狼叼走啦!画面左上角是佛龛,几乎每家都有,毁于文革

    最后在晨雾中离开师家沟去霍州,看一个典型院落

     

    ps. 在师家沟看到一件怪事,人们都用电炉子烧饭。问为什么,原来政府把煤矿收归国有,汾西的煤矿全都停产了,现在没有煤烧。。。当时立刻想到煤炭股会涨,果然。。。所以我觉得普通人炒股真是炒不过机构,起码一点,没有可能去收集这么多经济信息啊。。。

  • 秦晋之好(13)霍州

    走高速从介休到霍州。其实如果赶不到直达的车,可以坐介休到灵石(很呆的王家大院就在那里)的车再转。

    著名的霍州州衙,不用多说了,典型元代风格

     

    为什么说典型元代风格呢?未经仔细修整的木材,一头大一头小就这样粗旷地堆在一起,任何一个人都能看得出这是一个应付了事的建筑,大木作粗糙、小木作完全谈不上有,这么个建筑也就骗骗蒙古人达鲁花赤而已。不过,结构做得还是不错,经历过地震而不倒。

     

    州衙对面一条街都是加工这种叫饸络的面条的小店,看不出这种面条有什么特别,山西童稚来说说看?

     

    在州衙里面一直闻到饭菜香,寻味而去是霍州宾馆。大堂经理忙不迭地欢迎“几位领导”。。。汗,她们大概以为我们是记者吧。。。不过,经过这次山西之行,我们确定了山西人不会吃的形象,什么都喜欢面拖一拖,像这个豇豆拖出来还不错;可是面拖鱼就难吃了。顺便抄了个霍州名吃菜谱

    酸菜炒豆腐/山珍煲土鸡/霍山土鸡蛋/霍山野菜/小吃-狗舌头/七里峪野生木耳/猪血灌肠

      

    鼓楼。鼓楼内有照片展示本地古迹。按说霍州现在是县管不到汾西,但似乎有汾西的古迹

     

    抄了一下有  师家窊(wā)三圣庙戏台 王氏宗祠 李诠庄观音庙 祝圣寺后大殿 东关村关帝阁 南东村龙王庙大门 宋庄村关帝庙戏台 西张圣王庙 杨枣普照寺 祝圣寺后大殿琉璃脊饰 祝圣寺大雄宝殿梁架 西村娲皇庙戏台 李雅庄观音庙戏台 南李庄结义庙戏台 寺庄华佗庙戏台 师庄村玉皇庙戏台 陈村玉皇庙戏台 赵家庄观音庙戏台 小洞龙王庙戏台 许村民居上院 西张韩士海宅院 老张湾村张军生宅院 库拔村杨小明宅院 下老张湾村民居新院一进院过厅屏风匾 上乐坪成保林宅院 李雅庄李红德宅院正房窗 辛置杨有璋宅院大门木雕 南杜壁教务府(教堂)

    其中南杜壁教务府很好看的样子,可惜事先没做好功课不知道在哪里。

  • 秦晋之好(12)介休

    2009.10.7

    祆神楼的骆驼头

    后土庙

    这个庙的最宝是下面照片阑坊上的小疙瘩, 其实是小小的仙人神兽什么的, 基本上, 快掉光了。象头在后土庙和祆神楼都有。后土庙另有一琉璃照壁,我不太感冒。

  • 秦晋之好(11)离石

    离开吴堡,经柳林转车回到吕梁(离石)。说起来我们这趟的旅行还是很粗线条的,我后知后觉地现在才发现胡波早就走过吕梁访古路线,其实这一路都可以有很多可以慢慢逛的地方啊。当然其实要慢要仔细这一点我在霍州的鼓楼和汾城遇到老傅的时候就已经意识到了。

    我们只去了吕梁博物馆。门口广场上的灯柱上的花纹又是典型的西河纹。这个馆的开放时间比较雷,上午似乎是9:00-11:00,下午是3:00到5:00。我们2点到的,发现博物馆的后门进去是餐馆也,进包厢吃个饭出来正好。

    马车零件,铅镳,花样很画像石。。。

    离石和绥德在汉代都是西河郡的地盘,两地画像石风格基本一致。这边展出的画像石数目要少一点,但有个国内孤例是田单火牛阵。另外有一个完整的墓

    钻进去看看,舞马也

    博物馆的二楼有个青铜器馆,颇有些商周时期的。前面在晋博篇就说过了,那两个漂亮的鳄鱼纹器和猫头鹰器都是离石出的。同期的铃首柳叶刀揭示了当时这里是胡人的地盘。

  • Semaphore, Mutex, Critical section, SpinLock, Event

    拿到了一个offer,但是fail了一个也很想去的面试, 也许并不全是技术问题, 但是我竟然被critical section和mutex有何区别这个问题问倒了,使劲想觉得Linux和Vxworks里面似乎都没有啊,结果竟然是windows的。顺便把semaphore/spinlock/event/binary semaphore也带出来总结一下。

    Critical Section

    这是一个MS Windows的概念,它只能用于进程内的线程同步,由于不需要进入系统级(Mutex可以用于多进程同步因此必须是内核对象),它比较轻量,效率会高一点。对于semaphore/mutex一旦在调用WaitXXXX了(SleepXXX...)的时候OS就做Context   switch(除了核心态spinlock),有很多CPU时间被浪费,在x86处理器上这种switch一般要花费600个左右的 CPU指令周期。 

    Windows相关函数是EnterCriticalSection()和LeaveCriticalSection(),注意如果不Leave,其他需要这个critical section的线程都会被挂起。如果用MFC库,用CCriticalSection类的Lock()和UnLock()就可以了。有人用以下代码测量,得到的结果是1,000,000 uncontended acquires and releases, a mutex takes over one second. A critical section takes ~50 ms

    HANDLE mutex = CreateMutex(NULL, FALSE, NULL);
    CRITICAL_SECTION critSec;
    InitializeCriticalSection(&critSec);

    LARGE_INTEGER freq;
    QueryPerformanceFrequency(&freq);
    LARGE_INTEGER start, end;

    // Force code into memory, so we don't see any effects of paging.
    EnterCriticalSection(&critSec);
    LeaveCriticalSection(&critSec);
    QueryPerformanceCounter(&start);
    for (int i = 0; i < 1000000; i++)
    {
        EnterCriticalSection(&critSec);
        LeaveCriticalSection(&critSec);
    }

    QueryPerformanceCounter(&end);

    int totalTimeCS = (int)((end.QuadPart - start.QuadPart) * 1000 / freq.QuadPart);

    // Force code into memory, so we don't see any effects of paging.
    WaitForSingleObject(mutex, INFINITE);
    ReleaseMutex(mutex);

    QueryPerformanceCounter(&start);
    for (int i = 0; i < 1000000; i++)
    {
        WaitForSingleObject(mutex, INFINITE);
        ReleaseMutex(mutex);
    }

    QueryPerformanceCounter(&end);

    int totalTime = (int)((end.QuadPart - start.QuadPart) * 1000 / freq.QuadPart);

    printf("Mutex: %d CritSec: %d\n", totalTime, totalTimeCS);

    临界区域的一个缺点就是:Critical Section不是一个核心对象,无法获知进入临界区的线程是生是死,如果进入临界区的线程挂了,没有释放临界资源,系统无法获知,而且没有办法释放该临界资源。

    The 'fast' Windows equal of critical selection in Linux would be a futex, which stands for fast user space mutex. The difference between a futex and a mutex is that with a futex, the kernel only becomes involved when arbitration is required, so you save the overhead of talking to the kernel each time the atomic counter is modified. A futex can also be shared amongst processes, using the means you would employ to share a mutex.

    Unfortunately, futexes can be very tricky to implement (PDF).

    Mutex ("mutual exclusion" lock)

    Mutex和critical section一样,用来保证同时只有一个线程进入某区域,通常用来实现对某单一资源的访问控制。Mutex可以设定time out,可以不像critical section一样死等。如果一个拥有Mutex的线程在返回之前没有调用ReleaseMutex(),那么这个Mutex就被舍弃了,但是当其他线程等待(WaitForSingleObject等)这个Mutex时,仍能返回,并得到一个WAIT_ABANDONED_0返回值。

    A mutex (which stands for "mutual exclusion" lock) is a locking or synchronization object that allows multiple threads to synchronize access to shared resources. It is often used to ensure that shared variables are always seen by other threads in a consistent state.

    In Windows, the mutexes are both named and un-named. The named mutex is shared between the threads of different process.

    在MS Windows上API是CreateMutex()、OpenMutex()、ReleaseMutex()、WaitForSingleObject()和WaitForMultipleObjects()。用MFC库的CMutex类可以完成同样功能。

    In Linux, the mutexes are shared only between the threads of the same process. To achieve the same functionality in Linux, a System V semaphore can be used (具体参考这篇文章).

    支持POSIX库的系统(Linux/Unix)上有pthread_mutex_lock()和pthread_mutex_unlock()。

    简单说CriticalSection is a user-mode component implemented by the Win32 subsystem, while Mutex is a kernel-mode component.
    Practially, CriticalSection is much faster when there's no actual blocking (due to reduction in user-kernel mode switches), and probably slower when there is blocking (due to more complex implementation). Additionally, since a Mutex is represented by a HANDLE, you can wait on a mutex with a timeout, or with several other handles. Neither option is available with a Critical Section. Mutexes can be named and shared between processes, while CriticalSections are restricted to the threads of a single process.

     

    Semaphore

    特点是有计数,同时可以有N个线程可以进入一个区域。Windows上的API有CreateSemaphore()、OpenSemaphore()、ReleaseSemaphore()、WaitForSingleObject()和WaitForMultipleObjects()。或者用MFC的CSemaphore类。

    VxWorks没有Mutex, 它提供三种Semaphore: binary, counting, mutex. 相关API是semBCreate, semMCreate, semCCreate, semDelete, semTake, semGive, semFlush

    在VxWork上,Mutex会触发prority inheritance. If a higher priority task is waiting for a semaphore
    taken a low priority task and the low priority task, its priority will be temporarily changed to the high priority task which is waiting.

     

    Binary semaphore

    在有的系统中Binary semaphore与Mutex是没有差异的。在有的系统上,主要的差异是mutex一定要由获得锁的进程来释放。而semaphore可以由其它进程释放(这时的semaphore实际就是个原子的变量,大家可以加或减),因此semaphore可以用于进程间同步。Semaphore的同步功能是所有系统都支持的,而Mutex能否由其他进程释放则未定,因此建议mutex只用于保护critical section。而semaphore则用于保护某变量,或者同步。

    Event

    Event可以用来实现observer模式。创建一个Event,然后用WaitForSingleObject()挂起等待其它线程点亮(set)这个Event。我经常用的一个伎俩是在用户态创建一个Event的句柄,然后通过DeviceIoControl()把它传到驱动里面去,当驱动收到外部总线传来的数据包就点亮这个Event。Windows的API是CreateEvent()     OpenEvent()    SetEvent()     WaitForSingleObject() WaitForMultipleObjects()。MFC库里有CEvent类。

    Spin lock

    spin lock是一个内核态概念。spin lock与semaphore的主要区别是spin lock是busy waiting,而semaphore是sleep。对于可以sleep的进程来说,busy waiting当然没有意义。对于单CPU的系统,busy waiting当然更没意义(没有CPU可以释放锁)。因此,只有多CPU的内核态非进程空间,才会用到spin lock。Linux kernel的spin lock在非SMP的情况下,只是关irq,没有别的操作,用于确保该段程序的运行不会被打断。其实也就是类似mutex的作用,串行化对 critical section的访问。但是mutex不能保护中断的打断,也不能在中断处理程序中被调用。而spin lock也一般没有必要用于可以sleep的进程空间。

  • 手机拼图

    很多年以前西门子出过一个Xelibri系列的手机,外形超时尚,不过最后却兵败如山倒,据说主要原因是没有拍照功能。我以前不太相信,现在看看能拍照的手机还是能有点fun的。贴几张今年春天用手机拍的照片

    Mall

     

    隔壁小区的紫藤墙

    Canadian goose

    Post office

    supermarket

    传说中的美国凌霄,竟然是紫红色的@Richmond旧街区

  • C/C++中的static

    这个关键词几乎是所有面C/C++相关的技术时会被问到的。总结一下:

    首先在C里面

    /*  ----- test.c --- */

    static int status;

    static int sort( int * p, int length)
    {
    }

    int change_status()
    {
        static int s = 0;
    }

    int status 是一个local global variable, 意思是在文件test.c里面它是全局的,但是在其它文件里不可见。问题来了,如果其它源文件也定义一个static int status呢?完全没有关系在这里,因为互相不可见。一个常见问题,static变量存在哪里?答案是data segment. 再也是一个常见问题,啥时候初始化? compiling. 

    这个local global特性也可以作用在函数上,例如上面的sort(),就是一个当前源文件可见的函数,其他源文件大可以自行定义自己的sort(),当然,也要用static,否则就是全局可见。注意static作用的是函数而非返回值。

    // test.cpp

    class A
    {
        static int status;
        static int get_status();
    }
    int A::status = 0; //初始化必须在类定义外进行,这个有点weird,但标准就是这样定的

    在C++里面,类里面的static变量是global而非local global了。成员函数被冠以static时的特殊之处在于函数里面只能访问当前类的static变量。道理很简单,static函数可以没有instance被使用,例如A::get_status(),如果让它访问动态成员只能得到非法指针。

    关于初始化,如果不写那一句初始化(或者说我们不想初始化)如何?编译会通过,但是link会有问题。

    --最后一个killer问题,最好在问过structure和class有什么区别之后问,structure里可以有static变量么?相信绝大多数用了不少年C/C++的人也没有想过这个。当你面试别人而且不厚道的话可以问这个。

更多内容 下一页 »

链接

搜索

赞助商

外部链接

霞客户外 - ruhike.com
驴行、摄影、户外

思辨文化 - specul.com
思辯、思辨、思變

汉唐游戏 - sinogame.net
网页、桌游、玩具

投资无忧 - 51invest.com
人弃我取、人取我予

徒步中国 - greathike.com
知者乐水、仁者乐山

中国MIDI音乐 - midicn.com
设备、下载、音乐创作

聚合