• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            記錄一些學(xué)習(xí)小事

            Work hard

            統(tǒng)計(jì)

            留言簿

            閱讀排行榜

            評(píng)論排行榜

            2011年9月11日 #

            大家天天寫(xiě)程序累了,小弟貼個(gè)小文章過(guò)來(lái),給大家點(diǎn)心靈上的感觸

            從搬進(jìn)這家民房的第一天,我就開(kāi)始懷疑我隔壁的那個(gè)儲(chǔ)藏室根本沒(méi)住人。一天到晚黑黢黢的,沒(méi)半點(diǎn)聲響。 
            我終于還是忍受不了房間里那個(gè)破沙發(fā)了,便又一次跟房東要求,能不能讓我把一些雜物放進(jìn)隔壁的儲(chǔ)藏室。房東斜著眼,哼了一下:跟你說(shuō)過(guò)多少次了?那儲(chǔ)藏室租給一對(duì)民工夫婦了,里面住著人呢! 
            我算見(jiàn)識(shí)了廣東人的摳門(mén),就打算再也不去碰這一鼻子灰了。 
            那天,我出來(lái)倒垃圾,經(jīng)過(guò)儲(chǔ)藏室的門(mén),聽(tīng)到里面窸窸嗦嗦的,氣就不打一處來(lái),我知道肯定是老鼠又在里面大**了。我狠狠地一腳踹在門(mén)上,還不解氣,就又猛踹一腳。 
            門(mén)吱嘎的開(kāi)了,我嚇了一跳。我以為我把門(mén)踹壞了;正忐忑不安的時(shí)候,一個(gè)女人的腦袋伸了出來(lái),確切的說(shuō)應(yīng)該是個(gè)女孩或者少婦,從她那蓬松的馬尾辮和還有些稚氣的臉上我實(shí)在無(wú)法判斷她的年齡。 
            她輕輕的問(wèn)道:您找誰(shuí)? 
            我愣了,呆在那里,不知道說(shuō)什么好。 
            這時(shí)候一個(gè)有些猥瑣的男孩子也把腦袋湊著伸了出來(lái),遲疑了一下說(shuō):你是隔壁的吧?! 
            我一下子醒悟過(guò)來(lái),說(shuō):是啊,是啊。 
            男孩子笑嘻嘻的得意的說(shuō):我上次下班回來(lái)見(jiàn)過(guò)你。 
            周?chē)目諝怅┤坏耐T谀抢铮行擂巍N亿s忙說(shuō)著:不好意思,不好意思,打擾你們了。便迅速的溜回自己的房門(mén)。我聽(tīng)到了他們輕輕關(guān)房門(mén)的聲音,還聽(tīng)到了他們竊竊私語(yǔ)的聲音,好像在說(shuō):是不是我們平時(shí)動(dòng)靜太大,吵到鄰居了?那以后我們要多注意了!之類(lèi)的話。 
            我喝了口水,平靜下來(lái),我才確信,那個(gè)一天到晚黑洞洞的儲(chǔ)藏室里真的住著倆人,這倆人也許就是房東說(shuō)的那對(duì)民工夫婦。 
            我突然冷笑了一下,還夫婦呢,一看也就20來(lái)歲的樣子,私奔出來(lái)的?還是新婚小夫妻?不自覺(jué)的笑了笑,自我解嘲的想:民工么, 農(nóng)村出來(lái)的,結(jié)婚普遍早。那看來(lái)以后得稱(chēng)呼,那男人,那女人了。這樣想著,還抑制不住的笑出了聲。 
            第一次跟這對(duì)小夫妻接觸是因?yàn)槲彝浟藥ц€匙,進(jìn)不了門(mén),便找他們借工具,想把門(mén)撬開(kāi)。 
            那是我第一次真正的去敲那個(gè)門(mén),也是第一次去光顧那個(gè)陰暗的儲(chǔ)藏室。 
            門(mén)開(kāi)了,他們夫妻看到我似乎很驚喜,趕忙的讓我進(jìn)屋。我說(shuō)明來(lái)意,他們夫妻就轉(zhuǎn)身找家伙去了。門(mén)開(kāi)著,里面黑乎乎的,我忍不住往里邁了一步。不知道腳被什么絆了一下,我以為是有老鼠,嚇得“哎喲”大叫。他們中的一個(gè),立馬打開(kāi)了燈。天花板上的那盞小燈散發(fā)著昏黃的光,我敢肯定那燈泡不會(huì)超過(guò)10瓦。我很懷疑他們能從哪里買(mǎi)到這樣的燈泡,在這樣一個(gè)南方大都市我實(shí)在想象不出來(lái)哪里會(huì)有賣(mài)這樣的燈泡的。我猜想也許那是他們從老家?guī)?lái)的也說(shuō)不定。 
            我打量著這個(gè)我曾經(jīng)很想把雜物放進(jìn)來(lái)的儲(chǔ)藏室。我以最奢侈的估算,房間不會(huì)超過(guò)10個(gè)平方。四周沒(méi)有任何一個(gè)窗戶(hù),門(mén)是唯一可以通風(fēng)和出入的地方。房間里散發(fā)著一種潮濕的霉味,鉆進(jìn)嗓子眼,讓人感覺(jué)惡心。我忍不住一個(gè)箭步退了出來(lái)。 
            可是我卻清楚的看到,房間里除了一張單人木板床和零落在地上的鍋碗瓢盤(pán),真的沒(méi)有任何插腳的地方,我真佩服那對(duì)小夫妻是怎么呆在里面生活的。 
            最后,夫妻倆找到他們做飯的刀,也是唯一一個(gè)有可能打開(kāi)我房門(mén)的工具,費(fèi)了九牛二虎之力幫我弄開(kāi)了門(mén)。 
            門(mén)開(kāi)了,我并沒(méi)有任何要他們進(jìn)來(lái)的意思。他們站在門(mén)口,把著門(mén)框。踮著腳尖,一副靦腆的樣子,打量著我這個(gè)兩室一廳的房子。女人終于說(shuō)了一句話:怎么從來(lái)沒(méi)看見(jiàn)過(guò)您先生啊?我怔著臉說(shuō):我還沒(méi)結(jié)婚。女的臉紅了,似乎說(shuō)錯(cuò)了話,低著頭,不敢搭腔。男人不好意思地說(shuō);那您一個(gè)人住這么大的房子啊。我沒(méi)回答。 
            兩個(gè)人,半響沒(méi)說(shuō)話。不知道是誰(shuí)先看到了我放在客廳的電腦,便忍不住說(shuō):您有電腦呢! 
            我心里一個(gè)咯噔,民工也懂電腦?我說(shuō):是啊,你會(huì)上網(wǎng)么? 
            男的撓了撓頭皮說(shuō):我們讀大學(xué)的時(shí)候,有電腦課,上過(guò)機(jī)。 
            我嗖的渾身一陣發(fā)涼,大學(xué)?他們是大學(xué)生?可是怎么看怎么不像阿! 
            我心里多少有點(diǎn)被欺騙的感覺(jué),就故意問(wèn):那你們現(xiàn)在做什么工作的?你們什么學(xué)校畢業(yè)的?讀的什么專(zhuān)業(yè)啊? 
            他們抿了抿嘴,有點(diǎn)不好意思,我以為這下可揭穿你們了,真虛偽! 
            突然男的開(kāi)口了:我們讀的學(xué)校不好,也就是個(gè)三流大學(xué),我跟我老婆是一個(gè)大學(xué)的又是同鄉(xiāng),她讀文科,我讀理科。現(xiàn)在我做業(yè)務(wù)員,她在餐館當(dāng)服務(wù)員。 
            我撇了撇嘴,“哦”了一聲。 
            “我是**大學(xué)研究生畢業(yè)”在我說(shuō)完這句話的時(shí)候,我才發(fā)現(xiàn),門(mén)口的兩個(gè)人不知道什么時(shí)候已經(jīng)走了。 
            我有點(diǎn)失落,猜測(cè)著他們有沒(méi)有聽(tīng)到我提到**大學(xué)這個(gè)重點(diǎn)大學(xué)的名字 
            眾所周知,這幾年擴(kuò)招,大學(xué)生可謂是遍地爬。大學(xué)容易讀了,可是就業(yè)卻難多了。三流大學(xué)的畢業(yè)生,真的是連民工都不如,要體力沒(méi)體力,要腦力又夠不上格。而且三流大學(xué)學(xué)費(fèi)并不見(jiàn)得低,甚至要比好的大學(xué)要高很多,我就知道很多三流大學(xué)學(xué)費(fèi)高的驚人。 
            看這對(duì)小夫妻,估計(jì)是農(nóng)村出來(lái)的,當(dāng)初他們也許并不知道,花光家里的積蓄,得到的這一紙文憑,原來(lái)在這個(gè)社會(huì)里也許什么都不是。背負(fù)著一身債務(wù),出來(lái)打工才知道,原來(lái)三流大學(xué)的大學(xué)生只能跟小學(xué)沒(méi)畢業(yè)的靠體力吃飯的民工是一個(gè)層次的,都是命比紙薄,人比命賤的。 
            第二天,雖然我內(nèi)心深處還在揣測(cè)著,他們拿刀給我撬門(mén)技術(shù)這么好會(huì)不會(huì)哪天趁我不在也會(huì)這樣熟練的順手?可是總還是覺(jué)得別人幫了忙過(guò)意不去,就買(mǎi)了幾斤南方的水果給他們拎了過(guò)去。 
            他們似乎受寵若驚,說(shuō)什么也不要。我就告訴他們這是廣州這邊的規(guī)矩,找人幫了忙,一定要表示的,不收就是不給我面子。他們才誠(chéng)惶誠(chéng)恐的收下了。 
            沒(méi)過(guò)一會(huì),他們又來(lái)敲我的門(mén)。我以為是他們是把水果又送回來(lái)的,結(jié)果開(kāi)門(mén)后的第一句話就說(shuō):請(qǐng)問(wèn),這水果最多能放多久?我詫異的望著他們,心里有點(diǎn)氣,心想:難道他們以為我給他們買(mǎi)的水果過(guò)期了?我正要發(fā)作,他們便補(bǔ)充一句:能放到過(guò)年回家么?我愣了,他們說(shuō):過(guò)年沒(méi)啥帶回去的,這水果一定不便宜吧?我們想過(guò)年回去的時(shí)候帶回去當(dāng)年貨。我有點(diǎn)哭笑不得說(shuō):廣州天熱,不能放那么久的,個(gè)把星期就得壞了。 
            他們有點(diǎn)無(wú)奈,說(shuō)了句謝謝,就走了。 
            可是我明明聽(tīng)到:男的對(duì)女的說(shuō):要不我們想辦法留到8月15,過(guò)節(jié)的時(shí)候打打饞吧。 
            一個(gè)月后,農(nóng)歷的8月15,單位每人發(fā)了一盒高級(jí)月餅,拿回來(lái)后,我拆開(kāi)嘗了一個(gè),感覺(jué)很難吃,就想丟掉。 
            經(jīng)過(guò)那個(gè)儲(chǔ)藏室的門(mén),我改變了主意,想著丟了也怪可惜的,他們那么可憐,倒不如給他們過(guò)節(jié)的好。 
            看著門(mén)虛掩著,我沒(méi)敲,就徑直推開(kāi)了,那盞昏黃的燈亮著,兩個(gè)人蹲在地上,男的正在小心翼翼的切一個(gè)小小的月餅,正準(zhǔn)備把一塊稍大點(diǎn)的給老婆吃,看到我站在門(mén)口,不知所措的說(shuō)不出話來(lái)。女的正低頭啃著明顯已經(jīng)有點(diǎn)壞了的水果,吃的津津有味,我看到她沒(méi)有削皮,番石榴和火龍果都是帶著皮吃的。 
            男人呆了五秒,趕緊要把那塊稍微大點(diǎn)的月餅讓給我吃,我說(shuō)我不吃月餅的,然后說(shuō)明了來(lái)意。把那盒月餅放在門(mén)口就準(zhǔn)備離去。女人叫住了我:大姐,我都不知道說(shuō)什么好了,你看,我們吃的水果也是您給的,您又給我們送月餅來(lái),我都不知道該怎么報(bào)答您了,本來(lái)今天老公公司給他發(fā)了一個(gè)月餅,我們商量著給您送去的,可是一個(gè)拿不出手,就沒(méi)好意思,我們也沒(méi)什么稀罕物,你有啥事要幫忙的,一定吱應(yīng)一聲啊! 
            我這才知道,那一個(gè)月餅是她老公發(fā)的,我也這才知道,她啃的水果是一個(gè)月前我送給他們的。我本來(lái)想說(shuō):吃火龍果要扒皮。可是我忍了忍,沒(méi)有說(shuō)出來(lái)。 
            周末,隔壁的女人來(lái)敲門(mén),問(wèn)我有什么事是他們幫得上忙的,我笑著說(shuō)沒(méi)有。她眼尖,看到我沙發(fā)上放著一大堆臟衣服,非要幫我洗,我說(shuō)有洗衣機(jī),一會(huì)丟進(jìn)去就是了,不費(fèi)事的。她尷尬的站在那里,像是很對(duì)不起的樣子,不知道該做什么好。 
            我第一次,很熱情的邀請(qǐng)她進(jìn)門(mén),坐一會(huì)。她脫了鞋,光著腳丫子,進(jìn)了門(mén)。戰(zhàn)戰(zhàn)兢兢的,似乎怕弄臟了我的地板,不敢使勁踩下去。她哪里知道其實(shí)我已經(jīng)一個(gè)多星期沒(méi)有擦過(guò)地板了。 
            她告訴我,今天她休班,本來(lái)想幫我做點(diǎn)事的,可是沒(méi)想到?jīng)]做成。她似乎很羞愧,一直細(xì)聲細(xì)氣的答著我的話。她在我這里呆了半個(gè)小時(shí),告訴了我他們的境遇,說(shuō)那些話的時(shí)候她一直很溫柔,像在說(shuō)一個(gè)故事,絲毫沒(méi)讓我感覺(jué)到她的埋怨和委屈。 
            我給她倒的那杯礦泉水,她一直攥在手里,臨走的時(shí)候,她望了望我,我點(diǎn)頭示意,她帶走了那個(gè)一次性的紙杯子和那杯礦泉水。我猜,她是想留給她的老公喝。 
            從今天我才知道,他們是這樣的: 
            兩個(gè)農(nóng)村出來(lái)的孩子,父母都是守著一畝三分地的地道農(nóng)民,每年家庭收入從來(lái)不會(huì)超過(guò)2000的貧困家庭,又都考上了同一所三流大學(xué),學(xué)費(fèi)每年的需要是父母不吃不喝的5 年的家庭收入。讀不起書(shū),不想去,父母不肯,說(shuō)這是唯一一次改變農(nóng)村孩子命運(yùn)的機(jī)會(huì),跪下來(lái)求你去讀。來(lái)讀了,沒(méi)錢(qián)交學(xué)費(fèi),好歹有個(gè)助學(xué)貸款,好不容易憑著優(yōu)異的成績(jī)申請(qǐng)到了,可是畢業(yè)的時(shí)候卻因?yàn)闆](méi)有還清貸款不發(fā)畢業(yè)證。四年的生活費(fèi)是靠著獎(jiǎng)學(xué)金艱難的撐下來(lái)的。到頭來(lái),辛苦的付出卻換不到那一紙畢業(yè)證。于是兩人只能出來(lái)打工賺錢(qián),攢夠了錢(qián)好回去贖回畢業(yè)證。 
            他們租著這個(gè)城市最廉價(jià)的房子,吃著這個(gè)城市最廉價(jià)的飯菜,過(guò)著這個(gè)城市最貧困的生活,可是一年到頭下來(lái)卻還攢不到1萬(wàn)塊錢(qián)。這樣下去,要還完兩人的貸款還要8年。 
            我不知道8年對(duì)一個(gè)人的青春意味著什么,也不知道8年后是不是還能有機(jī)會(huì)有權(quán)利買(mǎi)回他們的畢業(yè)證。可是我知道8年的這樣的生活,不是隨便哪一個(gè)人能撐得住的! 
            那天,我回來(lái)的時(shí)候,有點(diǎn)晚,樓道里的燈已經(jīng)都開(kāi)始亮著了,經(jīng)過(guò)隔壁門(mén)口的時(shí)候,看到他們門(mén)開(kāi)著,屋里照樣還是黑黢黢的,男的蹲在門(mén)口大口大口的扒著面條,吃的很香。我問(wèn)了一句:燈壞了?他先是遲疑了一下,然后憨憨的笑了:沒(méi)呢,省電,反正樓道里的燈亮著,開(kāi)著門(mén),屋里也挺亮堂的。我笑了。我這才知道,怪不得他們屋里天天都不開(kāi)燈。 
            那晚他們的門(mén)一直敞開(kāi)著到很晚。我在客廳里能隱隱約約的聽(tīng)到他們的談話。 
            他們先是談了會(huì),這個(gè)月又多花了多少錢(qián),什么肥皂用的太快了,水太浪費(fèi)了,上次過(guò)生日不該買(mǎi)那2斤肉的,以后洗菜的水可以洗臉,洗臉的水可以洗澡洗腳,洗腳的水可以洗襪子,洗襪子的水可以沖廁所等等之類(lèi)的話。 
            他們一邊自責(zé)著自己花錢(qián)太多,一邊卻又忍不住憧憬著美好的未來(lái)。 
            他們想象著,不久的將來(lái),也許還完了錢(qián),就可以要個(gè)孩子,也許將來(lái)還能攢前買(mǎi)房子呢。 
            聽(tīng)著他們興奮的呢喃聲,我久久沒(méi)有睡意。 
            半夜,我聽(tīng)到男的喊肚子疼,好象疼的很厲害的樣子,“哎呀哎呀”的叫著。女的 很著急,問(wèn)怎么了? 男的說(shuō)好象今晚吃多了,撐著了。女的就招呼他趕緊起來(lái)上廁所。 
            男的遲疑了很久,似乎不想去,半響,我聽(tīng)到男的說(shuō)話了:我不想去上廁所,我們攢的沖廁所的水還不夠,那樣這個(gè)月的水又要超支了。再說(shuō)了,上完廁所,拉空了肚子,晚上容易餓! 
            聽(tīng)到這里,我腦袋轟的一下,空白了, 我的心被揪的生疼生疼,那句話成了我整夜的夢(mèng)魘:拉空了肚子,我怕餓! 
            聽(tīng)到那句話,我的心震撼了。我想到了我的爺爺。 
            爺爺生活在苦命的舊社會(huì),在那個(gè)吃不飽,穿不暖的社會(huì)里,一年到頭,小孩子拼命的盼著過(guò)年,因?yàn)檫^(guò)年能吃頓飽飯! 
            所以,每個(gè)孩子在過(guò)年那天,吃的撐的小肚子圓溜溜的,肚子再怎么漲,都不舍得去廁所。因?yàn)椋チ藥樟硕亲樱瑫?huì)容易感覺(jué)到餓,可是過(guò)完了年,是沒(méi)有機(jī)會(huì)再能吃頓飽飯的!所以每個(gè)孩子都憋著,忍著,因?yàn)槟莻€(gè)年代,窮,人們怕餓, 孩子更怕餓! 
            可是在21世紀(jì),在這么發(fā)達(dá)的年代,你竟然能從一個(gè)大學(xué)畢業(yè)生的嘴巴里聽(tīng)到這樣的話,你會(huì)有怎樣的感覺(jué)?感動(dòng)?悲慟?還是心酸?還是無(wú)可奈何的哀嘆? 
            或許都是,或許都不是! 
            我無(wú)暇顧及一個(gè)弱者的心態(tài),因?yàn)樯鐣?huì)如此,我也無(wú)能為力。我唯一能表示的除了同情或許還是只有同情。 
            我也曾經(jīng)鄙視過(guò),甚至曾經(jīng)在心底侮辱過(guò): 活該,誰(shuí)讓你沒(méi)本事考個(gè)名牌大學(xué)呢!沒(méi)錢(qián)讀個(gè)屁書(shū),自作自受! 
            可是我也不得不承認(rèn),一個(gè)山里的孩子,是不能僅僅憑著聰明才智就能高攀的起名牌大學(xué)的門(mén)檻的;那需要能力,實(shí)力。實(shí)力有時(shí)候除了良好的教育,優(yōu)秀的老師,還有很多很多,比如金錢(qián)堆砌的補(bǔ)習(xí)班,比如只有城里孩子才能享受的到的全方位的教育,又比如有有權(quán)有勢(shì)的父母。 
            他們沒(méi)有,他們是農(nóng)村的孩子,他們沒(méi)資格和權(quán)利有,沒(méi)人給他們買(mǎi)各種輔導(dǎo)資料,也沒(méi)有全國(guó)的優(yōu)秀教師給他們手把手的教,他們沒(méi)見(jiàn)過(guò)鋼琴,沒(méi)見(jiàn)過(guò)電腦,他們甚至除了村支書(shū),不認(rèn)識(shí)任何一個(gè)可以稱(chēng)得上干部的領(lǐng)導(dǎo)。 
            他們一天到晚只會(huì)看發(fā)的那唯一的課本,只會(huì)拼命的學(xué),只知道只有考上大學(xué)才能改變自己的命運(yùn)。 
            聽(tīng)著他們蹩腳的英語(yǔ),不太流利的普通話,有些邋遢的裝扮,破舊過(guò)時(shí)的衣著,我們都會(huì)忍不住笑。 
            我們喜歡在背后對(duì)他們?cè)u(píng)頭論足,喜歡抿著嘴吧裝作淑女般的嘲笑他們的無(wú)知,甚至喜歡在要去吃麥當(dāng)勞的時(shí)候故意問(wèn)他們?nèi)ゲ蝗ァA?xí)慣了看他們的尷尬,習(xí)慣了看他們的無(wú)助,也習(xí)慣了他們失去的比得到多。 
            當(dāng)我們有了太多的這樣的習(xí)慣,于是我們便開(kāi)始不在乎,他們是不是餓,是不是在我們浪費(fèi)糧食的時(shí)候,他們?cè)谛牡桌镞€默念著:不敢去廁所,怕拉空了肚子,餓!的事實(shí)。 
            “人怎能跟人相比呢?沒(méi)有可比性!農(nóng)村的怎么能跟城市的孩子比呢?沒(méi)比的必要!”這是以前我的一個(gè)朋友經(jīng)常跟我說(shuō)的一句話,那時(shí)候聽(tīng)了覺(jué)得好笑,現(xiàn)在想起來(lái),覺(jué)得有點(diǎn)無(wú)可奈何的心酸。 
            人難道真分三六九等么?誰(shuí)分的?你么?? 
            廣州的治安是越來(lái)越差了,住這種私房,真的是冒著生命危險(xiǎn)的。可是眼下我又找不到合適的房子搬,只能暫且戰(zhàn)斗在最前線了。 
            整棟樓有十幾個(gè)房東,他們是天天圍著麻將桌懶得輪流值班的,反正偷的也不是他們家的東西。最后在我們幾個(gè)房客的據(jù)理力爭(zhēng)下,好歹請(qǐng)了一個(gè)保安。 
            我下班回來(lái),看到樓下吵吵嚷嚷的,原來(lái)是保安抓住了個(gè)嫌疑犯。我好奇的瞥了一眼,這人不是別人,就是住在我隔壁的那個(gè)看上去有些猥瑣的男人。他低著頭,拼命的解釋?zhuān)鹤约翰皇切⊥担约菏亲≡谶@里的。 
            可是沒(méi)有人相信他,因?yàn)楫?dāng)保安問(wèn)他住幾樓,哪個(gè)房間時(shí),他只說(shuō)了6樓,卻說(shuō)不出房門(mén)號(hào)。因?yàn)閮?chǔ)藏室是沒(méi)門(mén)牌號(hào)碼的! 
            他像個(gè)嚇壞了的孩子,眼睛驚恐的掃視著周?chē)拿總€(gè)人,聽(tīng)著嘰里呱啦的客家話,他無(wú)力的解釋像一個(gè)人最后的死命掙扎。 
            我本能的走過(guò)去,他看到了我,眼睛里充滿(mǎn)了希望,含著淚珠的眸子閃過(guò)某種感激。我抬了抬我那總是直視遠(yuǎn)方的眼睛,發(fā)現(xiàn)周?chē)娜硕级⒅摇?nbsp;
            我遲疑了,立刻停住了自己那8公分的高跟鞋。我輕輕理了理自己的粉色洋裝,臉上滑過(guò)讓人不易察覺(jué)的一絲驚慌和害怕。我想扭頭沖向樓梯,當(dāng)作什么都沒(méi)發(fā)生過(guò)。可是我怎么也抬不動(dòng)我的雙腿,我僵持在哪里半秒鐘。 
            我盡量的壓低嗓門(mén),很禮貌矜持的說(shuō):你怎么沒(méi)帶大門(mén)的鑰匙?是不是又丟了,真讓人煩! 
            保安放開(kāi)了他,我微笑著說(shuō):他是我的遠(yuǎn)房親戚。不好意思,給你添麻煩了。 
            我扭頭,踩著我那尖尖的高跟鞋上樓了,樓道里留下一串“嗒嗒”的響聲。 
            他老婆回來(lái)的時(shí)候,一直隔著門(mén),站在我門(mén)口不停的說(shuō)著:謝謝。我沒(méi)吱聲。過(guò)了不久,似乎她已經(jīng)走了的時(shí)候,我打開(kāi)門(mén),看到他們卻還站在門(mén)口,捧著一大把花生和紅棗。 
            我盯著他們,沒(méi)開(kāi)門(mén),他們也沒(méi)敢說(shuō)這是給我。只是一個(gè)勁的解釋?zhuān)合挛缒菚?huì),他老公是想在樓下?lián)鞄讉€(gè)礦泉水瓶子呢;要早知道不讓撿,他說(shuō)啥也不去了。 
            我本想打斷她的講話,告訴他們:不是不讓撿,是你們長(zhǎng)的不像住在這棟樓里的人。可是我還是忍住了,繼續(xù)聽(tīng)他們說(shuō)。 
            他們始終低著頭,輕聲慢語(yǔ)的,說(shuō):他們也知道這里的規(guī)矩,人家?guī)土嗣δ兀欢ㄒ兄x的,可是他們沒(méi)什么能拿的出手的東西,這是他們老鄉(xiāng)回家給他們捎來(lái)的家里的特產(chǎn),都是自家種的,沒(méi)用過(guò)化肥, 讓我放心吃。
            我還是開(kāi)了門(mén),拿了張紙,讓他們把那把禮物放在了一張潔白的A6紙上。 
            那把花生和棗我沒(méi)有吃,我就放在那里,看著。他們都光溜溜的,泛著光,很心想的樣子,一般大小的個(gè)頭。很飽滿(mǎn)。 
            房東終于找上門(mén)了,開(kāi)門(mén)見(jiàn)山的第一句話就是:是不是你家新住進(jìn)一個(gè)人?我愣了好大一會(huì),才想起來(lái),可能是保安跟他說(shuō)了。 
            我把事情的來(lái)龍去脈解釋了一下,并試圖說(shuō)服房東給隔壁的門(mén)也掛個(gè)號(hào),房東不情愿的“嗯呢”了幾聲,便走了。 
            第二天,我真的看到他們的門(mén)上貼了張紙,寫(xiě)著:清潔工具存放處。 
            沒(méi)過(guò)幾天,我大學(xué)里的死party兼室友和她新結(jié)識(shí)的男友來(lái)廣州找樂(lè),我被迫請(qǐng)了一天假,陪他們。 
            隨便找了個(gè)館子想請(qǐng)他們吃粵菜,可是朋友說(shuō)粵菜沒(méi)味,沒(méi)吃幾下,就嚷著走,后來(lái)還是不得不去了湘菜館子,才算滿(mǎn)足他們的胃口。吃完飯,沒(méi)事,街上是不敢拎著包包閑逛的,就去了“錢(qián)柜”K歌,唱到一半,結(jié)果又使性子,非要去“朝歌”。弄來(lái)弄去,歌沒(méi)唱好,還耽誤了時(shí)間。 
            晚上回來(lái)的時(shí)候,已經(jīng)有些晚了。可是我看到隔壁的燈還亮著,屋里還嚶嚶的傳來(lái)抽泣的聲音。 
            我沒(méi)理會(huì)那聲音,開(kāi)了門(mén),把朋友讓了進(jìn)去。朋友進(jìn)門(mén)就開(kāi)了電腦,把那首《不怕不怕》開(kāi)的聲音老大,震的整個(gè)房子都晃悠。 
            樓下的終于忍不住了。來(lái)敲門(mén),讓我們動(dòng)靜小點(diǎn)。我關(guān)了音樂(lè),跟朋友談起了隔壁的那對(duì)小夫妻。朋友以為我在講故事,一邊說(shuō)著無(wú)聊,一邊就摸過(guò)煙開(kāi)始吸。我最討厭煙味,因?yàn)槟悄軉艹鲅蹨I。 
            我趕朋友出門(mén),讓她在樓道里吸夠了再回來(lái)。 
            半支煙工夫,朋友死命的敲門(mén),興奮的叫著她男朋友的名字,說(shuō)快出來(lái)聽(tīng)?wèi)颉?nbsp;
            他們倆出去,便沒(méi)了聲息。好久才回來(lái)。 
            朋友一進(jìn)來(lái),就湊到我耳朵邊說(shuō):你別假正經(jīng)了,是不是每天晚上沒(méi)事,就去隔壁聽(tīng)音樂(lè)啊? 我還沒(méi)來(lái)得及反應(yīng)過(guò)來(lái),他們倆就大笑起來(lái)。沒(méi)完沒(méi)了的,怪煩人的。 
            后來(lái),我才知道,原來(lái)他們倆是去隔壁門(mén)口聽(tīng)動(dòng)靜去了。至于什么動(dòng)靜,我沒(méi)問(wèn),但我想,應(yīng)該與顏色相關(guān)。 
            晚上睡不著拿起《洛麗塔》,看了兩頁(yè),就開(kāi)始走神。后來(lái)迷迷糊糊的睡著的時(shí)候,我似乎真的聽(tīng)到了隔壁的動(dòng)靜,聲音不大,但很誘人。 
            朋友呆了還不到3天,我就開(kāi)始煩躁,我感覺(jué)那種以往的寧?kù)o被打破了,而且一個(gè)單身女人看到一對(duì)情人在你面前晃來(lái)晃去的親昵,真的容易中風(fēng)! 
            送走他們,我開(kāi)始變得神經(jīng)質(zhì),我經(jīng)常故意關(guān)門(mén)很大聲,估計(jì)開(kāi)開(kāi)關(guān)關(guān)防盜門(mén)不停,故意想讓隔壁聽(tīng)到我在發(fā)脾氣,故意想讓每個(gè)人都知道我心情很不好。 
            隔壁的小夫妻還是每次看見(jiàn)我笑笑的,有點(diǎn)靦腆的羞赧。男人那頭有點(diǎn)油膩有點(diǎn)亂的頭發(fā)依舊還是在發(fā)梢上泛著或多或少的頭皮屑,女人的馬尾辮也依舊蓬松的攏在后面,有點(diǎn)像秋天亂飛的樹(shù)葉。 
            可是我見(jiàn)了他們,卻沒(méi)有笑,也不再板著臉,只是面無(wú)表情的點(diǎn)個(gè)頭,用自己有力的鞋跟敲打著地面,匆匆離去。 
            每次低下頭,看著自己那8公分的高跟鞋,我才恍惚的感覺(jué)到,其實(shí)沒(méi)有了這鞋跟,我似乎也不高! 
            然后就是無(wú)休止的失落和郁悶! 我猜,他們一定是精心挑過(guò)了的。估計(jì)一麻袋里才能挑出這般的花生棗子吧。 
            想到這里,我笑了。不大會(huì),我又后悔起來(lái),我真不該笑!
            有這么幾天,那扇門(mén)一直關(guān)的緊緊的,屋里也一直沒(méi)亮過(guò)燈,我扒在門(mén)縫里瞅,竟然不能看到里面的任何東西。有幾次,我甚至使勁貼著耳朵聽(tīng),竟然也絲毫沒(méi)聽(tīng)到任何動(dòng)靜。我開(kāi)始害怕,擔(dān)心他們不聲不響的搬走了。 
            我甚至開(kāi)始抱怨,為什么走的時(shí)候沒(méi)打聲招呼。我不知所措,在房間里踱來(lái)踱去,狠命的撕扯著那個(gè)抱枕,用力敲打著鍵盤(pán),寫(xiě)著一些很尖刻的文字,用蔑視的眼光看著周遭的一切。 
            我發(fā)現(xiàn)我有好久沒(méi)這么情緒激動(dòng)過(guò)了,甚至應(yīng)該說(shuō)我有很多年沒(méi)這么情緒化了。我突然傷感起來(lái)。似乎失去了什么珍貴的東西,似乎別人偷走了原本屬于我的一份心情。我開(kāi)始詛咒,開(kāi)始謾罵,開(kāi)始憎恨這個(gè)世界。 
            我每天站在門(mén)口,期望著能突然有人站在我面前笑,我總是忍不住去瞄那扇門(mén),希望能看到里面透出一絲淡淡的泛著黃暈的光。可是一連好幾天,都沒(méi)有。 
            我終于還是跑去找了那個(gè)有點(diǎn)啰嗦的房東。我說(shuō)我要租那個(gè)儲(chǔ)藏室。房東訝異的看著我:你要住?我皺了皺眉,說(shuō):我要放沙發(fā)。房東似乎有點(diǎn)為難:你想什么時(shí)候租?我詫異了:難道現(xiàn)在還有人住么? 不是空出來(lái)了么?房東說(shuō):那對(duì)民工下個(gè)月到期。 
            我忽然有種莫名的欣喜,難道還沒(méi)走?我結(jié)結(jié)巴巴的說(shuō)著:那下個(gè)月我租! 
            等我再經(jīng)過(guò)那扇門(mén)的時(shí)候,我有點(diǎn)高興,因?yàn)槲宜坪蹩吹嚼锩驽佂肫氨P(pán)碰撞的聲音,因?yàn)樗坪跷夷苈?tīng)到他們的竊竊私語(yǔ)。 
            那天,我睡的很早,我其實(shí)一點(diǎn)也不困。可是我還是早早的躺在了床上,我睜大了眼睛,看著天花板,想著有一次能有人敲我的門(mén)。 
            一陣開(kāi)門(mén)的聲音驚動(dòng)了我,盡管那聲音小的還沒(méi)蚊子“嗡嗡”聲大,可是近幾天我練就了一雙聰慧的耳朵。我唰的從床上爬起來(lái),沖了出去。 
            那女人看著我當(dāng)啷的一聲開(kāi)門(mén)聲,嚇得站在哪里不動(dòng)了。我很尷尬,趕忙掩飾自己的那種激動(dòng):回來(lái)了?怎么這幾天都不在?回老家了么?女人望了我半響,吞吞吐吐的說(shuō):還沒(méi)睡呢,大姐。沒(méi),沒(méi)呢,沒(méi)回去。這幾天有事。 
            她第一次不是微笑著跟我說(shuō)話,也是第一次沒(méi)有過(guò)多的說(shuō)什么,就進(jìn)了那間我天天盯緊了的儲(chǔ)藏室。 
            我愣在那里,好久,好久,我才反應(yīng)過(guò)來(lái)。我突然想哭,是那種有點(diǎn)委屈,有點(diǎn)付出了很多熱情卻被冷落后的難過(guò)。可是我沒(méi)哭出來(lái),也沒(méi)掉淚,我只是關(guān)了門(mén),打開(kāi)了電腦,開(kāi)始漫無(wú)目的到處游蕩。 
            那晚,我聽(tīng)到她一個(gè)人忙到很晚,丁零當(dāng)啷的不知道是做飯還是收拾東西。 
            聽(tīng)到那個(gè)屋里一直傳來(lái)一個(gè)人的聲響,我突然很奇怪,那男人呢? 
            我孤單起來(lái),感覺(jué)到寂寞的可怕,尤其是那隔壁的單調(diào)的動(dòng)靜,讓我徹底的開(kāi)始感覺(jué)到渾身冰涼。 
            我突然意識(shí)到:原來(lái)一個(gè)人是這么凄清,這么荒涼的可悲。我裹緊了睡衣,可是仍舊無(wú)法驅(qū)散這午夜的孤寂。 
            她似乎有點(diǎn)不好意思,在門(mén)口站了許久,沒(méi)有敲門(mén),也沒(méi)有要走的意思,低著頭,好像在思索著怎么開(kāi)口。 
            其實(shí)對(duì)于昨天那些簡(jiǎn)單的話語(yǔ),在南方這個(gè)有點(diǎn)冷漠的城市,不算什么,客套顯得奢侈,敷衍是每個(gè)人對(duì)周遭的理所當(dāng)然的態(tài)度。可是我看得出來(lái),她還并不適應(yīng)這種人與之之間的冷淡和乏味的陌路。也許,她以為,在這里還是跟家里一樣。可是,她單純的,怎么能想象的出來(lái)在異地他鄉(xiāng)很多時(shí)候人和人是沒(méi)人情味可言的。 
            我主動(dòng)開(kāi)了門(mén),走了出去,看著她,等她第一個(gè)開(kāi)口。 
            她聽(tīng)到門(mén)響,忽的抬起頭,眼睛里有點(diǎn)驚慌,有點(diǎn)不好意思的欣喜。她笑了笑,我明顯的看到她的眼睛紅紅的,腫了,有哭過(guò)的痕跡。 
            她微微點(diǎn)了下頭:對(duì)不起大姐,平時(shí)你挺照顧我們的,昨天我心里難受,對(duì)你態(tài)度不大好,你別在意。我還有事,要趕著出門(mén),沒(méi)別的事,我走了。 
            她轉(zhuǎn)過(guò)身,我一把拉住了她。我第一次像對(duì)一個(gè)朋友那樣的語(yǔ)氣問(wèn)到:出啥事了? 
            她愣了,淚珠子像斷了線一樣,噼哩啪啦的掉下來(lái),所有的委屈,壓抑,和內(nèi)心深處的痛苦,都隨著眼淚傾瀉下來(lái)。我毫無(wú)防備,她一下趴在我肩頭,哭出聲來(lái)。我沒(méi)拒絕,輕輕的環(huán)住了她,想著也許這樣能多少分擔(dān)一些她那莫大的苦楚。 
            她娓娓道來(lái),我才知道,她老公住院了。 
            他老公本來(lái)做業(yè)務(wù)員,可是由于本性木訥,不善于交際,所以業(yè)績(jī)一直不好,只好辭職了,另找了份體力活暫時(shí)做著。由于體質(zhì)不好,又加上吃的不好,每天都很累,那天,去上班,不小心被掉下來(lái)的磚頭砸破了頭,住進(jìn)了醫(yī)院。本來(lái)以為這算工傷,單位會(huì)報(bào)銷(xiāo)醫(yī)藥費(fèi),可是單位不僅不管,還把他開(kāi)除了。積蓄都花光了,她只好回來(lái)收拾收拾,然后去把老公接回來(lái)養(yǎng)傷。 
            我拿出了張銀行卡,想給她取點(diǎn)錢(qián),暫時(shí)用著,她死活不肯,就一溜煙的跑下了樓。 
            下午她和她老公就回來(lái)了,她老公的頭上包著紗布,有氣無(wú)力的樣子,看到我,還是擠出了笑容。看著他那矮矮瘦瘦的樣子,我似乎覺(jué)得他看上去沒(méi)那么猥瑣,盡管卑微,卻很精神;盡管怯懦,卻很堅(jiān)強(qiáng)。我回了他一個(gè)微笑,這一次,我笑的很真,很用心。 
            那一天,一整天,我心情都很好。這是我從來(lái)到這座城市后第一次這么開(kāi)心,第一次這么用心的笑,第一次這么在乎自己是否笑的認(rèn)真。 
            那天,我看到了自己臉上掉下來(lái)的面具,赤裸裸的擺在我面前,露著森森白牙無(wú)力的呻吟,無(wú)力的掙扎,無(wú)力的哀嚎。 
            而我,就那么漫不經(jīng)心的,拿起打火機(jī),點(diǎn)燃了它。 
            我小心翼翼的敲開(kāi)了他們家的門(mén),女的不在家,上班去了,男的顫巍巍的站在門(mén)口,望著我傻乎乎的笑著,不知道該怎么把我讓進(jìn)門(mén)。 
            我并沒(méi)有要進(jìn)去的意思,就那么直直的站在門(mén)口,像聊天一樣,像跟家人朋友說(shuō)起話來(lái):你們單位叫什么名字?憑什么在你上班期間受傷不按工傷負(fù)責(zé)醫(yī)藥費(fèi)?他們有什么理由開(kāi)除你?按照《勞動(dòng)法》你有權(quán)利......我話還沒(méi)說(shuō)完,他就傻傻的笑了,插嘴道:我知道,我也讀過(guò)大學(xué),我也懂法,可是沒(méi)用的!《勞動(dòng)法》也許真的能保障你們這些白領(lǐng)的合法權(quán)益,可是對(duì)于一個(gè)民工,是沒(méi)有任何保障可言的。拿什么保障?誰(shuí)給你保障?你找誰(shuí)討說(shuō)法?什么這個(gè)機(jī)構(gòu),那個(gè)機(jī)構(gòu)都去過(guò)了,磨破了嘴皮子,根本沒(méi)人管!去單位,那些老板雇傭的打手不把你打殘廢算是幸運(yùn)的了,再說(shuō),去挨頓揍,最后還是自己掏腰包看病,更不劃算。算了,我認(rèn)了,誰(shuí)讓咱沒(méi)啥社會(huì)地位呢! 
            聽(tīng)著他的嘆氣,聽(tīng)著他那些話語(yǔ),我似乎感覺(jué)到了自己的幼稚,社會(huì)是殘酷的,生活是殘忍的。報(bào)紙上那些民工年年討要工錢(qián)反被打,干了活拖欠工資,受了工傷沒(méi)人管的新聞一幕幕浮現(xiàn)在我的眼前。我一下子開(kāi)始清醒,社會(huì)就是這樣的,你讓這樣的一個(gè)弱者去那里討說(shuō)法,你讓這樣的一個(gè)社會(huì)底層的人,拿什么來(lái)維護(hù)自己的權(quán)益? 
            我不再言語(yǔ),我感到了語(yǔ)言的蒼白無(wú)力,我感到了詞匯的貧乏,我也感到了自己那些不太現(xiàn)實(shí)的想法的天真。 
            我有點(diǎn)虛弱的沉沉的嘆息,囈語(yǔ)般的說(shuō):外面的社會(huì)太無(wú)奈,這么艱難,還是回去吧,與其這樣備受凌辱和煎熬,不如回去過(guò)雖然貧困卻有尊嚴(yán)的日子。 
            他還是笑了,笑的有點(diǎn)無(wú)奈。他抬起頭,望著遠(yuǎn)處,似乎在自言自語(yǔ):回去?回去怎么辦?欠的學(xué)費(fèi)無(wú)論如何要還的,都不還,國(guó)家怎么辦?國(guó)家在我最需要幫助的時(shí)候伸出了手,我不能忘恩負(fù)義,做人要厚道!何況家里還有弟弟妹妹在讀書(shū),父母也年邁了,身體又不好,不賺錢(qián),怎么供弟妹?怎么養(yǎng)爹娘? 
            做人要厚道!聽(tīng)到這句話,我驚呆了,一個(gè)生活這么艱難的人,一個(gè)淪落到社會(huì)最底層的人,竟然還想著國(guó)家,竟然做人的原則比我們這些衣冠楚楚的人都高尚。我開(kāi)始感覺(jué)到自己似乎變小了,有些卑微。 
            我睜大眼睛,看著他,有那種很敬畏的目光一直盯著他,耳朵里飄過(guò)的全是他那些幽幽道來(lái)的話: 
            農(nóng)村真的窮,很多人都說(shuō),窮還生那么多?其實(shí),為什么要生了一個(gè)還要生一個(gè)?誰(shuí)愿意那么窮還要養(yǎng)幾個(gè)孩子,生活壓力更大,可是沒(méi)辦法。被逼的啊!在農(nóng)村,人老了,沒(méi)勞動(dòng)能力的,就等于開(kāi)始要養(yǎng)個(gè)閑人,農(nóng)村的老人沒(méi)養(yǎng)老保險(xiǎn),沒(méi)任何社會(huì)福利,也沒(méi)任何生活保障。如果不多生孩子,老了后,一個(gè)孩子養(yǎng)不起倆人老,那還不得活活餓死,于是只好多生幾個(gè),分輕負(fù)擔(dān)。養(yǎng)兒防老是農(nóng)村不得已的傳統(tǒng)! 
            每個(gè)農(nóng)村的父母都想自己孩子有出息,而想改變命運(yùn)只有考大學(xué)一條出路,可是讀大學(xué)卻是很昂貴的,所以家里只要有一個(gè)考上大學(xué)的,全家都要遭殃,跟著砸鍋賣(mài)鐵的供著。可是現(xiàn)在大學(xué)生畢業(yè)工作很難找,尤其是讀的學(xué)校不好,專(zhuān)業(yè)又不好,更難找;沒(méi)拿到畢業(yè)證等于沒(méi)上大學(xué),去任何單位人家都要看你學(xué)歷證書(shū),沒(méi)有,只能當(dāng)民工。 
            說(shuō)到這兒,他很無(wú)奈的搖了搖頭,用力的憋著嘴巴,不再言語(yǔ)。 
            我也沒(méi)說(shuō)話,我不知道該說(shuō)什么好,因?yàn)檫@是一個(gè)從小生活在城市里的孩子無(wú)法想象的,于是我選擇沉默。也只能沉默。 
            中午,我叫了兩份快餐,我端了一份給他,他說(shuō)什么也不要。我假裝生氣道:我打擾你一個(gè)上午,讓你沒(méi)好好休息,請(qǐng)你吃個(gè)快餐算是表示歉意!他推辭不掉,只好接過(guò)去了。 
            我知道一個(gè)快餐,太寒磣了,可是我知道,如果過(guò)于奢侈的東西,他又怎么肯接受? 
            晚上,女的很晚才回來(lái),累的一身疲憊。我聽(tīng)到男的說(shuō):我給你留了好吃的,你餓了吧,快吃吧。女人堅(jiān)持說(shuō)吃過(guò)了,非要男的吃,因?yàn)槟械挠袀谏恚枰獱I(yíng)養(yǎng)。聽(tīng)著他們推來(lái)推去。我的眼眶濕潤(rùn)了。 
            我知道,我又錯(cuò)了,我太不了解他們彼此的愛(ài)了,他們的愛(ài)是雙份的啊!又怎么忍心一個(gè)人獨(dú)吞一份自己認(rèn)為是好的東西,而讓另一個(gè)咽著口水眼睜睜看著呢? 
            那天,我終于知道:兩份愛(ài)的倍數(shù)很大,很大,很大。以至于我根本無(wú)法看到它的邊際,無(wú)從理解它的內(nèi)涵。 
            男人終于慢慢的好起來(lái)了,等他完全康復(fù)的時(shí)候,我托朋友給他找了份稍微輕松點(diǎn)的工作,雖然賺錢(qián)不多,可是畢竟比先前的要好些。他們夫妻倆帶著滿(mǎn)懷的感激不知道說(shuō)了多少遍:謝謝。盡管我一再說(shuō)這是舉手之勞,可是他們還是不停的說(shuō)謝謝。弄的我都有些慚愧了。 
            一個(gè)月后,男人和女人興高采烈的跑來(lái)拽著我往外走,我還沒(méi)弄清怎么回事,他們就把我拖出了門(mén)外。直到樓下,我才搞明白,原來(lái)男人發(fā)工資了,非要請(qǐng)我吃飯。我呵呵的笑著,說(shuō):不用客氣了,都是出門(mén)在外,互相照應(yīng)是應(yīng)該的,吃飯就免了吧。可是他們固執(zhí)的拉住我,非請(qǐng)不可,說(shuō):不請(qǐng),于情于理都說(shuō)不過(guò)去。看著我也一副堅(jiān)決不去的樣子,他們倆急了:你是不是怕我們帶的錢(qián)不夠,不看,我?guī)Я撕脦装倌亍Uf(shuō)著就要去掏錢(qián)。看著他們憨厚可愛(ài)的樣子,我實(shí)在推辭不過(guò),只好答應(yīng)了。 
            我一邊走著,一邊想著:怎么樣才能既讓他們請(qǐng)了我,了卻了他們的心愿,又能為他們省錢(qián)。我想起了廣州最便宜的飯館,拉面館。 
            于是我裝作沉思良久的樣子說(shuō):我知道有個(gè)地方的東西很好吃,我最喜歡吃了。不如我們?nèi)コ蕴m州拉面吧。他們倆先是一呆,接著就說(shuō):那怎么行呢?怎么能請(qǐng)你只吃碗面呢?說(shuō)啥也要請(qǐng)你吃頓好的。 
            我故意很生氣的樣子:我就喜歡吃拉面,你們要是誠(chéng)心請(qǐng)我,就請(qǐng)我吃拉面,要是吃別的,我可不高興了。
            他們倆看我生氣了,只好答應(yīng)著,說(shuō):一切都依著我。 
            到了面館,我點(diǎn)了一碗牛肉面,男的點(diǎn)了一碗素的,一碗牛肉的。等拉面端上來(lái)的時(shí)候,男人把最大的一碗帶牛肉的面推到我面前,把另一碗有牛肉的端給他老婆,他自己的那碗?yún)s是碗小的素的。 
            看著我疑惑的眼神,男的趕緊解釋到:我喜歡吃素的。以前的傷口還沒(méi)長(zhǎng)好,吃葷的對(duì)傷口不好,素的好。 
            其實(shí)我知道,這根本不關(guān)傷口的事,我知道他是為了省錢(qián),可是他不會(huì)虧待朋友,于是只能虧待自己。 
            看著他大口的吃著面,看著他老婆不停的把牛肉夾到他碗里,看著夫妻兩人你不停的你把肉夾給我,我把肉夾給你;我的嗓子哽在那里,難受的咽不下去一口面。我能感覺(jué)到我的眼前一片模糊,不知道是面的熱氣撲在了臉上,還是有別的東西糊住了眼睛,能感受的只有一陣潮濕。 
            第一次,我學(xué)著他們的樣子,吃光了碗里的面,喝光了碗里的湯,盡管我撐的胃疼。可是我第一次能感覺(jué)到我內(nèi)心深處很充實(shí),很滿(mǎn)足。 
            雖然吃的是8塊錢(qián)一碗的拉面,但是我知道這一餐很貴。那不僅僅是花去了他們好幾天的生活費(fèi);讓我得到的更不僅僅是飽飽的胃,而是我從未有過(guò)的感激和體會(huì)。這無(wú)論是多少錢(qián)都不能買(mǎi)得到的,也不是所有人都能得到的恩惠;那種價(jià)值只有人性中才有。 
            我想,這是我至今為止吃過(guò)的最貴的一頓飯,它真的很奢侈,很昂貴。 
            一個(gè)懶洋洋的午后,我的那個(gè)朋友給我打電話來(lái),當(dāng)我聽(tīng)完他的敘述,我嚇呆了,我不知道他說(shuō)的是不是真的,也沒(méi)聽(tīng)清楚事情到底怎么回事,我只知道,我隔壁的那個(gè)男的被抓進(jìn)了公共安全專(zhuān)家局。 
            朋友不停的埋怨我,怎么會(huì)給這樣的人介紹工作,言語(yǔ)間的不滿(mǎn),無(wú)疑是說(shuō),我讓他幫忙找了這個(gè)工作,事情現(xiàn)在弄成這樣,他在那個(gè)公司老板面前已經(jīng)顏面盡失。聽(tīng)著他憤憤的掛斷電話,我就知道,以后這個(gè)朋友算是沒(méi)了,更別說(shuō)再找他幫忙給那對(duì)夫妻介紹工作了。 
            我已經(jīng)來(lái)不及關(guān)心,這份或許叫友誼的東西還是否能完整的存在,也無(wú)心去跟這位朋友道歉,我只想知道他怎么樣?我只想弄清楚事情到底是怎么回事。我在潛意識(shí)里竟然多了份對(duì)他的信任,我告訴自己,也許這是個(gè)誤會(huì)。 
            我請(qǐng)了假,急忙的趕回家,跑上樓,去敲那扇門(mén),可是良久,都沒(méi)人來(lái)開(kāi)門(mén)。我有點(diǎn)失落,我想也許女的已經(jīng)趕去公共安全專(zhuān)家局了。 
            我無(wú)力的靠在那里,望著隔壁我的門(mén),突然傷感起來(lái)。我看到了我門(mén)框上貼著一張紙條,我跑過(guò)去,撕下來(lái),是女的給我留的言。上面沒(méi)說(shuō)什么事,只是留下了一個(gè)***的地址。我來(lái)不及多想,便趕去了那個(gè)***。 
            趕到那里的時(shí)候,我看到兩個(gè)**正在對(duì)女的訓(xùn)話,女的低著頭,忍住抽泣,聳動(dòng)的肩膀似乎在極度的壓抑著將要哭出來(lái)的聲音。旁邊還坐著一個(gè)中年婦女。那個(gè)中年婦女頻頻的皺著眉頭,盡量的讓身子往一邊靠,唯恐女人那身有點(diǎn)破舊的衣服玷染她。我沖過(guò)去,拉住女的胳膊問(wèn)道:到底出了什么事? 
            兩個(gè)**先是打量了我一番,沉吟了半響,然后口氣緩和的問(wèn)道:你是?我沒(méi)看他們一眼,自顧的說(shuō):我是**晚報(bào)的記者,她是我的朋友,我想來(lái)找她了解一下情況。 
            兩個(gè)**互相看了一眼,半信半疑,但是又似乎不敢冒險(xiǎn),于是姿態(tài)便低了下來(lái),不再大聲的吼著對(duì)女人訓(xùn)話,對(duì)我也客氣的套起交情來(lái)。 
            我把女人拉到一邊,問(wèn)她到底是怎么回事,她老公在哪里?女人看著我,還沒(méi)開(kāi)口,眼淚就刷的掉了下來(lái),我安慰她不要哭,先把事情跟我說(shuō)清楚,我們?cè)傧朕k法。 
            原來(lái)事情是這樣的,今天上午,他老公去為公司的一個(gè)客戶(hù)送資料,在公共汽車(chē)站等車(chē)的時(shí)候,正巧遇到“飛車(chē)party”搶劫正在等車(chē)的一個(gè)婦女的包。婦女拼命拉住自己的包哭喊,卻沒(méi)有一個(gè)人去管,正在雙方你爭(zhēng)我?jiàn)Z,僵持不下的時(shí)候,他看到了,想都沒(méi)想,就沖過(guò)去,幫婦女奪包。無(wú)論賊人怎么打他,甚至拿出了刀子,可是他還是拉住包不放手,這時(shí)候執(zhí)勤**趕來(lái),“飛車(chē)party”便逃竄了。 
            本來(lái)事情就這么簡(jiǎn)單,可是當(dāng)**趕來(lái)的時(shí)候,看著他也在奪包,以為他是搶劫犯的同伙,就問(wèn)那個(gè)被搶的婦女,認(rèn)不認(rèn)識(shí)這個(gè)男的,婦女一口咬定不認(rèn)識(shí),并且還強(qiáng)調(diào):她也不知道這個(gè)男的是“飛車(chē)party”同伙,還是另一伙搶劫犯,反正跑上來(lái)就奪她的包。**二話不說(shuō),就帶走了男人。 
            由于男人著急給客戶(hù)送資料,所以再怎么解釋都沒(méi)用,挨了匪徒的打也就罷了,竟然還被**猛揍一頓,讓他老實(shí)交待。他怕耽誤公司交待的任務(wù),只好報(bào)出了公司的名字,本想著這樣只是可以趕緊讓公司派人來(lái)把資料及時(shí)轉(zhuǎn)交給客戶(hù),沒(méi)想到,公司一聽(tīng),立馬不承認(rèn)他是本單位的人,也就是說(shuō)他立馬就被開(kāi)除了。 
            **通知了他的老婆,他老婆一來(lái),就被定性為:搶劫犯家屬。不停的被訓(xùn)話,還讓她交待問(wèn)題。她嚇得不知道說(shuō)什么,腦袋一片空白,要是我不來(lái),她真的不知道該怎么辦? 
            聽(tīng)完她的敘述,我一股無(wú)名火就上來(lái)了。我轉(zhuǎn)身到那位婦女旁邊:請(qǐng)問(wèn),你就是受害人?我想采訪一下您,這是我的工作證件。婦女愣了,不知所措的看著我,我不理會(huì)她的莫名其妙,繼續(xù)問(wèn)道:請(qǐng)你詳細(xì)描述一下當(dāng)時(shí)的情況,你為什么就認(rèn)定這個(gè)幫你奪包的人也是搶劫犯,為什么你就不能認(rèn)為他是來(lái)幫你從匪徒手上奪回包的人呢?
            婦女,看了看我,又看了看**,慢吞吞的,結(jié)結(jié)巴巴的說(shuō):怎么可能有那么好的人?這年頭,誰(shuí)還愛(ài)管閑事啊?難道他不怕死?他要是真幫我,那他不是傻子就是精神有問(wèn)題。pol.ice聽(tīng)著,也頻頻點(diǎn)頭,似乎她說(shuō)的才是一個(gè)正常的人所應(yīng)該做的。 
            看著他們理所當(dāng)然然的表情,我憤怒了,我大吼起來(lái):他如果是搶劫犯的同伙,為什么搶劫犯打他?他如果也想搶你東西,為什么pol.ice來(lái)了不跑?在pol.ice來(lái)之前那會(huì),他完全可以搶了你東西就跑?你東西少了么?他打你了么?有目擊證人可以證明他也是在搶你包么?你們pol.ice有什么證據(jù)證明他就是搶劫犯?是因?yàn)樗麤](méi)有這個(gè)城市的戶(hù)口?還是因?yàn)樗┲粔蛉A麗?一個(gè)冒著生命危險(xiǎn)幫你忙的人,你竟然還要指責(zé)他是搶劫犯?如果是你被冤枉,你會(huì)怎么樣? 
            我深深吸了口氣:你們?cè)跊](méi)證據(jù)的情況下,就抓人,就非法拘留,你們這是犯法!我指著那個(gè)婦女:你這樣不識(shí)好歹,分不清好人壞人,你不覺(jué)得慚愧么? 難道你也要教育你的孩子,事不關(guān)己?高高掛起? 
            所有的人都愣在那里,不說(shuō)話,我知道,在這樣一個(gè)治安混亂,世風(fēng)日下,人心不古的城市,在這樣一個(gè),人與人之間冷漠的不帶丁點(diǎn)溫度的社會(huì),在這樣一種你被欺負(fù),我無(wú)視的風(fēng)氣下,沒(méi)有人開(kāi)始相信善良,也沒(méi)有人會(huì)去相信會(huì)有人無(wú)私去幫助別人,甚至當(dāng)你去好心的做一件你認(rèn)為對(duì)得起良心的事情的時(shí)候,在多數(shù)人眼里,那成了你偽善的最好外衣。 
            pol.ice可以抓錯(cuò)你,法律可以錯(cuò)判你,可是你要想去糾正這個(gè)錯(cuò)誤卻不是一件簡(jiǎn)單的事情。 
            抓錯(cuò)你,可以只是因?yàn)閼岩赡悖湍芙o你戴個(gè)嫌疑犯的帽子;疑罪從無(wú)在很多時(shí)候只是法律條文里的一句話而已,現(xiàn)實(shí)中能真正貫徹實(shí)施的屈指可數(shù)。判錯(cuò)你,可以有一萬(wàn)個(gè)理由歸咎于司法的不健全,可是沒(méi)有人會(huì)為你受到的不公待遇負(fù)責(zé),提起國(guó)家賠償,也只是說(shuō)說(shuō)而已,又有哪個(gè)人能真的得到過(guò)這樣的道歉形式?! 
            我知道,要給他洗清罪名,我必須全力以赴,我必須有足夠的證據(jù)證明他是無(wú)辜的,他是好人,他當(dāng)時(shí)是想去幫助那個(gè)婦女。 
            盡管,現(xiàn)在婦女含糊其辭,已把自己搞糊涂了,自己也說(shuō)不清楚他到底是不是來(lái)幫自己的等等理由來(lái)推脫,不想面對(duì)自己遇到好人,反咬一口的事實(shí)。pol.ice也以雖然沒(méi)有證據(jù)證明他是搶劫犯,但是事關(guān)他出現(xiàn)在事發(fā)現(xiàn)場(chǎng),并與此事有關(guān)聯(lián)為由,不能徹徹底底的還他一個(gè)清白。 
            我知道,要靠抓住當(dāng)時(shí)的那兩個(gè)搶劫犯來(lái)為他洗脫不白之冤可能性微乎其微,我只能想辦法找其他證據(jù)。我利用自己是記者的身份,想盡辦法,找到了當(dāng)時(shí)事發(fā)現(xiàn)場(chǎng)的2個(gè)目擊證人,是一個(gè)報(bào)亭的老頭和一個(gè)推著車(chē)買(mǎi)水果的婦女。他們都說(shuō)當(dāng)時(shí)那男的的確是去幫被搶的婦女奪包,不是搶劫犯。可是當(dāng)我想要他們陪我去趟***跟pol.ice證明一下的時(shí)候,他們卻死活都不肯。說(shuō)不想多管閑事,怕惹一身臊。在我苦苦哀求無(wú)果的情況下,我不得不耍了點(diǎn)小手段,與其說(shuō)是手段,不如說(shuō)是無(wú)奈之舉。 
            我說(shuō)我是記者,現(xiàn)在要對(duì)那天發(fā)生的事件,寫(xiě)篇評(píng)論。廣州街頭一婦女被搶?zhuān)眯娜耸┚龋幢徽_賴(lài)是歹徒,旁觀者無(wú)人肯出頭!我還故意說(shuō):你們倆我也會(huì)以匿名形式將你們事不關(guān)己的態(tài)度寫(xiě)進(jìn)去的,不知道你們的孩子看了,會(huì)有何感想。 
            看著兩人有點(diǎn)遲疑,我又說(shuō),如果你們肯證明,我當(dāng)然也會(huì)在文章中把你們伸張正義,深明大義的善良舉動(dòng)報(bào)道出來(lái)的。我相信你們都是好人,都不會(huì)眼睜睜的看著另一個(gè)好人被誣賴(lài)受不白之苦的。 
            他們掂量了很久,終于還是被我說(shuō)動(dòng)了。 
            我又去找了男人公司的上司,盡管他很不情愿的開(kāi)證明說(shuō)那天的確是派男人去給客戶(hù)送資料的事實(shí),但是礙于我與他們老板朋友有交情的情面,還是開(kāi)了。盡管,我也知道,那個(gè)原來(lái)的朋友其實(shí)也許已經(jīng)沒(méi)得朋友可作了。 
            我找了律師,咨詢(xún)了這方面的法律,托了很多朋友和同學(xué),終于把男人弄出來(lái)了。 
            盡管出來(lái)的時(shí)候,pol.ice沒(méi)一句道歉的話,盡管那個(gè)受過(guò)他幫助的婦女沒(méi)一個(gè)謝字。可是,我看得出來(lái),他并沒(méi)斤斤計(jì)較的去在乎。起碼證明了他無(wú)罪,證明了他是個(gè)好人。 
            當(dāng)這件事發(fā)生的時(shí)候,我失去了原本可以稱(chēng)之為好友的朋友;甚至失去了以后可能再聯(lián)系的可能。但是我得到的更多,更多,我得到了讓一個(gè)好人恢復(fù)聲譽(yù)的機(jī)會(huì),我得到了去幫助一個(gè)值得去幫助的人幸運(yùn),我也得到了一份我對(duì)自己的由衷的感激。 
            我不知道,他以后再碰到這樣的事還會(huì)不會(huì)毫無(wú)顧慮的沖上去幫忙,也不知道他內(nèi)心是不是已經(jīng)開(kāi)始對(duì)于做一個(gè)好人的概念有了新的詮釋?zhuān)墒俏抑浪举|(zhì)的善良不會(huì)因此而動(dòng)搖。 
            可是無(wú)論怎樣,也不管以后他會(huì)不會(huì)繼續(xù)這樣做,我們都沒(méi)資格再去怪他,也沒(méi)權(quán)利去讓一個(gè)受過(guò)傷害的好人忍著痛再去迎頭頂?shù)蹲樱∫驗(yàn)椋莻€(gè)拿刀子傷害他的人,其實(shí)就是我們,我們這些人,我們這個(gè)社會(huì)。 
            天空飄著雨,有點(diǎn)陰霾,來(lái)來(lái)往往的人潮,冷著一張張沒(méi)表情的臉,繼續(xù)在這個(gè)城市生活著,沒(méi)有人知道曾經(jīng)發(fā)生過(guò)這樣的一件事,甚至當(dāng)初親眼見(jiàn)過(guò)此事的人也許早已當(dāng)作一個(gè)談資將其遺落在腦后。 
            世界忘記了,可是我記得,那天記得,歲月記得。
            自此以后,那夫妻總是顯得有點(diǎn)卑微,總是在感激了我之后,有點(diǎn)抬不起頭來(lái)的難過(guò)。似乎全都是他們的錯(cuò),似乎他給我們,給所有的人添了很大的麻煩一樣。也許,真正善良的人都是這種心態(tài),總是不停的從自身找原因,總是覺(jué)得如果我夠好,又怎么會(huì)這樣,卻從來(lái)不去怪罪別人,不去把責(zé)任推卸到別人身上。 
            我試圖給男人再找份好點(diǎn)的工作,無(wú)奈,夫妻兩人總是笑瞇瞇的說(shuō):不麻煩了,他們找到工作,已經(jīng)在上班了。其實(shí)我心里明白,他們知道上次給我添了亂,是無(wú)論如何彌補(bǔ)不了的,盡管我不在乎,可是他們?cè)诤酰麄儾幌朐賮?lái)讓我為難,所以便拼命拒絕我的好意。 
            男人早出晚歸,我想或許是真的找到工作了。看著他們每天筋疲力盡的樣子,我心里酸酸的,卻又不知道該如何幫他們。我第一次感覺(jué)到:那種無(wú)可奈何的難過(guò),竟然是能折磨人的。 
            元旦的時(shí)候,我在樓道遇到他們,夫妻二人高興的跟我打招呼,說(shuō)要出去吃大餐。看著他們有說(shuō)有笑的出門(mén),我心里不禁艷羨起來(lái),也許在我們?yōu)樗麄冸y過(guò)的時(shí)候,他們卻能找到屬于他們自己的生活的點(diǎn)滴快樂(lè)和幸福。 
            第二天,我一看到他們,就開(kāi)始調(diào)侃:昨天去哪里吃的大餐?他們并沒(méi)有不好意思,而是神秘的笑了,那笑有點(diǎn)天真,又有點(diǎn)溫暖。女的趴早我耳朵邊悄悄的說(shuō):大姐,你知道么?有種店,是一塊錢(qián)吃到飽的!我驚詫了,睜大眼睛看著他們。 
            在廣州呆過(guò)的人都知道,有很多快餐店,為了吸引顧客,總喜歡在門(mén)口張貼著一塊錢(qián)吃到飽的大條幅,可是我們每個(gè)去過(guò)的人都知道,那只是一種標(biāo)語(yǔ),真的進(jìn)去消費(fèi)了,是永遠(yuǎn)不可能會(huì)讓你花一塊錢(qián)吃頓飯的。說(shuō)句實(shí)話,進(jìn)去吃飯就算你一個(gè)人,吃下來(lái),再怎么節(jié)省也要20塊錢(qián)。何況是夫妻倆人一塊去吃呢? 
            我很懷疑的看著他們,他們似乎有點(diǎn)不好意思了,男人終于忍不住了說(shuō):真的,大姐;我們沒(méi)騙你,我們昨天去吃過(guò)了,我們兩口子一共就花了五塊錢(qián)!我失笑出聲:怎么可能,米飯一個(gè)人都要算兩塊錢(qián)呢,五塊錢(qián),你們吃的啥? 
            女人嘿嘿的笑了:我們進(jìn)去,看菜單,發(fā)現(xiàn)只有一種小菜是一塊錢(qián),就是花生米,這么小一碟。一邊說(shuō)著,她便用手比劃著,其實(shí)她不比劃我也知道那碟花生,估計(jì)一共不會(huì)超過(guò)10粒花生米。因?yàn)樵诓宛^里,這種一塊錢(qián)一碟的花生米,只是為了響應(yīng)他們的一塊錢(qián)吃到飽的口號(hào)的。現(xiàn)實(shí)中真正去點(diǎn)這個(gè)菜的人屈指可數(shù)。 
            女人還在眉飛色舞的說(shuō)著:他們的例湯是免費(fèi)的,一大盆呢! 反正米飯按人頭算錢(qián),一個(gè)收兩塊,我們倆就著花生米一人吃了四碗米飯,喝光了所有的湯,吃的飽飽的,只花了五塊錢(qián)呢。 
            說(shuō)完,他們倆相視一笑,反而讓我覺(jué)得不好意思起來(lái)。我不知道,他們是懷著多大的勇氣,走進(jìn)一個(gè)還不錯(cuò)的餐館,坐下來(lái),只點(diǎn)一碟花生米,卻能吃完四碗飯的?我也不知道,他們?cè)诤裙饷赓M(fèi)的湯時(shí), 一粒花生米就著一碗飯?jiān)趺淳统缘哪敲礉M(mǎn)足,那么開(kāi)心。 
            我想,當(dāng)時(shí),肯定有很多人用異樣的眼光看著他們,甚至還會(huì)有人竊竊私語(yǔ)的笑話他們老土;也許他們甚至能夠聽(tīng)到別人侮辱的話語(yǔ),也能看到別人鄙視的眼光,但是他們卻還能繼續(xù)坐在那里,吃完那頓飯,并且是高高興興的吃完,然后拿五塊錢(qián)去買(mǎi)單。 
            我并不覺(jué)得這樣做有多么可恥,也并不覺(jué)得這樣做會(huì)有什么不妥,拿五塊錢(qián)來(lái)消費(fèi)也是顧客,消費(fèi)五塊錢(qián)并不就比消費(fèi)了50塊的客人低一等。但是,無(wú)論什么時(shí)候,我們卻往往看到在某些消費(fèi)場(chǎng)合,似乎高消費(fèi)更能得到好的周到的服務(wù),又似乎有錢(qián)的更能得到尊重。 
            我承認(rèn),如果是我,懷里揣著五塊錢(qián),是絕對(duì)不敢去這樣的餐廳消費(fèi)的,我沒(méi)有勇氣去只叫一碟一塊錢(qián)的花生米,也許盡管我的食量只是一碗米飯加一碟花生米,但是我還是會(huì)要幾個(gè)也許我根本不會(huì)動(dòng)一筷子的奢侈的菜。其實(shí)內(nèi)心也知道那是浪費(fèi),但是又有哪個(gè)人不喜歡用錢(qián)的浪費(fèi)來(lái)購(gòu)買(mǎi)自己面子的實(shí)惠呢? 
            在這個(gè)社會(huì),有錢(qián)的比沒(méi)錢(qián)的說(shuō)話更有底氣,富有的比貧窮的更能得到別人的尊重,高高在上大都是有錢(qián)人,社會(huì)底層的都是貧困潦倒的。畢竟現(xiàn)在是商品市場(chǎng)的社會(huì),經(jīng)濟(jì)類(lèi)型決定了錢(qián)是多么重要,錢(qián)變成了自尊,面子的代名詞。我們每天都活在賺錢(qián)買(mǎi)面子的日子里。在我們奢侈的去花大筆錢(qián)買(mǎi)所謂的面子的時(shí)候,我們是否會(huì)想起有那么一群人,還掙扎在溫飽線上呢? 
            月薪不如別人高感覺(jué)沒(méi)面子,到現(xiàn)在還沒(méi)有百來(lái)平方的房子感覺(jué)沒(méi)面子,工作了幾年還是普通職員也覺(jué)得沒(méi)面子,看到別人的老婆比自己的漂亮也會(huì)覺(jué)得顏面盡失,甚至?xí)驗(yàn)閯e人的衣服比自己的名牌也會(huì)汗顏。我們活在一個(gè)面子至上的世界,那點(diǎn)卑微的自尊心總是遮掩著自己脆弱的顏面。回首已逝去的歲月,才發(fā)現(xiàn)其實(shí)活的并不快樂(lè),是因?yàn)橘嵉腻X(qián)太少了,買(mǎi)不起足夠的面子?還是賺的錢(qián)買(mǎi)來(lái)的面子,遮住了自己的人性尊嚴(yán)? 
            金錢(qián),生存,面子,自尊;在人生的天平上,到底孰重孰輕?! 
            年前,我懶洋洋的等待著春節(jié)的到來(lái),想著是否該回家陪父母過(guò)年。在我猶豫了又猶豫的時(shí)候,我發(fā)現(xiàn)離過(guò)年還不到10天了,我想公司是非要靠到年前才肯放假的,想著又要買(mǎi)全價(jià)的飛機(jī)票,便在心里開(kāi)始狠狠的想:明年一定不再磨蹭,提前倆月買(mǎi)票,估計(jì)就能買(mǎi)4折的飛機(jī)票回去了。 
            就在我敷衍著年前最后幾天的班,想著如何找個(gè)借口提前請(qǐng)假回家的那幾天,我一直沒(méi)看到隔壁的小夫妻。我以為他們?cè)缇突丶疫^(guò)年去了。 
            可是就在一天半夜,女的敲開(kāi)了我的門(mén)。我睜開(kāi)惺忪的眼睛,含糊的問(wèn)著:有事么?女的顯得很不好意思,說(shuō):對(duì)不起,打擾你了,我想讓您幫個(gè)忙,聽(tīng)說(shuō)民工能網(wǎng)上訂票,你能不能幫忙看看?我答應(yīng)著,讓她進(jìn)了門(mén),我打開(kāi)電腦,開(kāi)始幫忙給她訂火車(chē)票。可惜的是,網(wǎng)上訂票是要民工單位團(tuán)體訂票,她和她老公的單位都沒(méi)有人給他們訂票,他們個(gè)人又沒(méi)資格網(wǎng)上訂。她看了看規(guī)定,很郁悶的走了。我迷迷糊糊的竟然忘記說(shuō)句安慰她的話。 
            第二天,我心里一直記得這件事,總覺(jué)得該做點(diǎn)什么。我從新聞上看到可電話訂票,便匆匆記下了號(hào)碼,準(zhǔn)備給他們個(gè)驚喜。 
            下班時(shí)間還沒(méi)到,我就急忙趕回去了,我回去的時(shí)候,女人在家,我好奇她為何沒(méi)去上班,但是我只顧著說(shuō)電話訂票的事,就沒(méi)來(lái)得及問(wèn)。男人不在家,我絮絮叨叨的跟女人說(shuō)著電話號(hào)碼,我還掏出自己的手機(jī)讓她趕緊打電話訂票。 
            女人苦笑了一下,沒(méi)接我的手機(jī)。眼里含著淚,哽咽著對(duì)我說(shuō):我就是因?yàn)榇螂娫捰喥保焕习蹇吹介_(kāi)除了。說(shuō)著便苦起來(lái):我這個(gè)月半個(gè)月的工資也沒(méi)給,說(shuō)我是違反規(guī)定了,不罰錢(qián)就算是寬大處理了。 
            原來(lái),女人也聽(tīng)人說(shuō),可以電話訂票,從一大早起來(lái)就去IC電話亭打電話,可是總打不進(jìn)去,就在中午吃飯時(shí)間,偷偷溜出去打電話訂票,可是打通了就說(shuō)票已售完。一連一個(gè)星期都是如此,女人實(shí)在沒(méi)辦法,只好在早上店里沒(méi)客人的時(shí)候,用店門(mén)口那個(gè)公用電話繼續(xù)打電話,8點(diǎn)半就打通了,女人高興的不得了,以為這次終于可以訂到票了,結(jié)果卻說(shuō)票已售完。票沒(méi)訂到不說(shuō),打電話卻被老板正巧看到了,說(shuō)她上班時(shí)間做私事,就把她炒了。無(wú)論女人怎么苦苦哀求,還是慘遭開(kāi)除。 
            我一邊安慰女人:反正要過(guò)年了,也要趕著回家過(guò)年呢,不干了也好,明年回來(lái)找個(gè)更好的工作。一邊說(shuō):要不再用我手機(jī)打打試試,說(shuō)不定能訂到票呢。 
            女人搖著頭:不可能的,我老鄉(xiāng)電話打了十幾天了,也沒(méi)訂到,就算早上八點(diǎn)一開(kāi)通服務(wù),你第一個(gè)打進(jìn)去,也訂不到票,因?yàn)檫@個(gè)列次的火車(chē)過(guò)年很緊張,不可能正當(dāng)途徑買(mǎi)到票。 
            我以前只知道過(guò)年買(mǎi)火車(chē)票難,可是沒(méi)想到這么難。我就問(wèn):去火車(chē)站排隊(duì)買(mǎi)不行么? 不是聽(tīng)說(shuō)那里很多票販子么?實(shí)在買(mǎi)不到就買(mǎi)黃牛票吧。 
            女人沉思半響,說(shuō):我老公已經(jīng)在火車(chē)站排隊(duì)排了半個(gè)月了,還沒(méi)買(mǎi)到票呢。他白天請(qǐng)假去排隊(duì)買(mǎi)不到,晚上就通宵不睡覺(jué)在那里排隊(duì)買(mǎi),還是買(mǎi)不到。票販子天天看到我老公,主動(dòng)找我老公說(shuō)了好幾次,說(shuō)他們有票,保證真的,可是手續(xù)費(fèi)太貴了,我們不舍得阿! 
            我說(shuō):多少手續(xù)費(fèi)?總不能比火車(chē)票價(jià)還貴吧!女人咧嘴笑了,那笑有點(diǎn)勉強(qiáng):我們回去,坐硬座,票價(jià)才200多,可是手續(xù)費(fèi)卻要300,你說(shuō)兩張票連票錢(qián)加手續(xù)費(fèi)就要1000多,我們一個(gè)月的錢(qián)啊。這不是喝我們血么?1000塊錢(qián),在我們老家,是一年的收入啊,我們?cè)趺茨苌岬媚兀?nbsp;
            聽(tīng)著她的話,我無(wú)語(yǔ)了。我突然感到很自卑,感覺(jué)自己竟然是那么淺薄,那么無(wú)知。 
            為了兩張回家的火車(chē)票,工作丟了,倆人日日夜夜去排隊(duì)買(mǎi)票,拿著生活費(fèi)去打那個(gè)比長(zhǎng)途還貴的電話,半個(gè)月下來(lái),得到的結(jié)果竟然是:票已售完。 
            那么多火車(chē)票去哪里了? 為什么天天排隊(duì)買(mǎi)票都說(shuō)沒(méi)票了,票販子卻又喊著:去任何地方都有票,手續(xù)費(fèi)300元呢? 
            到底,票都到了何人的手中? 又是怎樣到了這些人的手中的呢?而那天價(jià)手續(xù)費(fèi)的暴利到底在養(yǎng)活著誰(shuí)? 
            我氣沖沖的撥通了火車(chē)站的服務(wù)電話,我剛說(shuō)完車(chē)次,就被告知:春節(jié)前本次車(chē)票已全部售完,請(qǐng)轉(zhuǎn)乘其他車(chē)次。 
            我有些失望,試圖勸說(shuō)他們能不能轉(zhuǎn)車(chē)回去?或者坐長(zhǎng)途汽車(chē)?女人慘淡的笑了笑:大姐你別操心了,沒(méi)法轉(zhuǎn)車(chē),能經(jīng)過(guò)我們那個(gè)小地方的,就這一個(gè)車(chē)次,到別的地方倒車(chē),也不好買(mǎi)票,還是回不去,汽車(chē)太貴了,都快趕上飛機(jī)票價(jià)了,不如走回去呢。說(shuō)著還半安慰我似的開(kāi)著這個(gè)黑色的玩笑。 
            看著她緊鎖的眉頭,想著也許這會(huì)她老公還在火車(chē)站滿(mǎn)懷著那么點(diǎn)希望排著隊(duì),等著老天爺大發(fā)慈悲,給他們兩張回家的票,而我卻還在猶豫著過(guò)年回不回去陪父母,想著回趟家真累,來(lái)回路上夠折騰人的。
            我開(kāi)始覺(jué)得自己的卑鄙,甚至渺小。他們也許可以不回去,但是卻非要堅(jiān)持回去,是為了雙方年邁蒼老的父母?還是為了回去分擔(dān)家里的憂愁?無(wú)論怎樣,為了回去,卻要付出這般代價(jià),值得么?也許很多人不以為然,可是在親情的天平上,這個(gè)砝碼卻很重。 
            一張過(guò)年回家的火車(chē)票,就那么一張薄薄的紙片,不知道要費(fèi)多少心,傷多少神,排多少個(gè)夜晚的隊(duì),付出多大的代價(jià)才能得到!那里面到底藏著多少回家人的血汗,又寫(xiě)著多少回家人無(wú)奈的眼淚?! 
            我的飛機(jī)票已經(jīng)訂好了,全價(jià)! 
            每到過(guò)年,航空公司都開(kāi)始腰桿子硬起來(lái),打死不打折,可是飛機(jī)票卻依然緊俏,中國(guó)人都太戀家,過(guò)年花在回家路上的路費(fèi),也算是對(duì)拉動(dòng)經(jīng)濟(jì)增長(zhǎng)做點(diǎn)貢獻(xiàn)了。
            “鐵老大”,仍然牛氣烘烘的一邊說(shuō)著加開(kāi)臨時(shí)列車(chē),又一邊抱歉的告訴你:票已售完。 
            隔比夫妻在輪班排隊(duì)買(mǎi)票的情況下,還是沒(méi)得到回家的那一張通行證。
            他們天天在火車(chē)站等著,
            盼著哪天能有個(gè)好心人來(lái)退票,可是這種奢望很渺茫,他們似乎也感覺(jué)到無(wú)力回天,除了等待奇跡,只能盤(pán)算著是不是真的要走回家。 
            在此期間,我一直不停的在網(wǎng)絡(luò)上搜索著關(guān)于這輛車(chē)次的消息。每次看到有人轉(zhuǎn)讓?zhuān)叶技辈豢纱娜ヂ?lián)系,可是都是票販子在打廣告,手續(xù)費(fèi)比票價(jià)都高,而且行情看漲,越來(lái)越高。 
            我想幫他們出手續(xù)費(fèi),只要他們出票價(jià),可是他們死活不答應(yīng),說(shuō)是原則問(wèn)題,就是走回去也不買(mǎi)高價(jià)票。他們很正式的跟我說(shuō):我們是中國(guó)公民,為什么坐車(chē)要買(mǎi)高價(jià)票呢?我們又不比別人低一等!難道我們沒(méi)權(quán)利去享受一張正當(dāng)價(jià)錢(qián)的票么?都去買(mǎi)高價(jià)票,以后就真的只有高價(jià)票,沒(méi)有正當(dāng)?shù)幕疖?chē)票了,那些暴利養(yǎng)活的都不是好人,我們?cè)竭@樣養(yǎng)他們,他們?cè)截澙贰?nbsp;
            聽(tīng)了他們的話,我沉默了。 
            我突然害怕起這個(gè)有點(diǎn)病態(tài)的社會(huì)來(lái),我怕那致命的細(xì)菌會(huì)感染我! 
            我感到那么無(wú)能為力的難過(guò),我很想為他們做點(diǎn)什么,可是我卻到頭來(lái)什么都沒(méi)能為他們做,甚至只是兩張火車(chē)票,我都不能幫他們。 
            我最終沒(méi)逃脫,找關(guān)系,走后門(mén)的那些俗套。我托了朋友,朋友又托了朋友的一個(gè)在火車(chē)站工作的朋友,費(fèi)了九牛二虎之力才弄到兩張硬座票。吃飯,應(yīng)酬,說(shuō)著冠冕堂皇的感謝的話,最后,終于在每張票多付了100元的情況下我才有機(jī)會(huì)把票握在手里。 
            酒足飯飽后,那人打著酒嗝還在繼續(xù)不停的說(shuō)著:票是多么難買(mǎi),別人多出300塊手續(xù)費(fèi)他都沒(méi)給,因?yàn)榭丛诶吓笥衙孀由纤彤?dāng)免費(fèi)幫朋友的忙。 
            我只好用感激的眼神望著他,說(shuō)著千恩萬(wàn)謝的話,用一種謝謝你的大恩大德的態(tài)度來(lái)應(yīng)承他的恩惠。他滿(mǎn)足的笑著,我也在心里滿(mǎn)意的想著:有了票,他們終于可以回家過(guò)年了。 
            當(dāng)我把兩張車(chē)票放在他們面前的時(shí)候,他們呆住了,用一種難以置信的崇敬的眼神望著我,良久都不說(shuō)話。我笑著,什么話也沒(méi)說(shuō)。 
            女人突然問(wèn)道:你是不是買(mǎi)來(lái)的高價(jià)票?我搖搖頭?那票是哪里來(lái)的?我笑了。我沒(méi)說(shuō)實(shí)話,我不知道為什么,在他們面前有些虛偽的實(shí)話是不需要說(shuō)出來(lái)的。我告訴他們。票是我的一個(gè)同事的朋友買(mǎi)的,原本要回家過(guò)年,可是公司突然說(shuō)有事,回不去了,只好轉(zhuǎn)讓票。結(jié)果正巧讓我知道了,我就趕緊買(mǎi)過(guò)來(lái)給你們送過(guò)來(lái)了。我怕他們說(shuō)錢(qián)的事,趕緊補(bǔ)充:票人家沒(méi)多要一分錢(qián),要不去火車(chē)站退票還要扣手續(xù)費(fèi)呢,你們要了,正好解決了人家后顧之憂,人家還省錢(qián)了呢。 
            他們高興的說(shuō)不出話來(lái),一邊把票接過(guò)去,反復(fù)的看著,撫摸著,一邊掏錢(qián)給我。我說(shuō)什么也不要。他們便怔住了臉,說(shuō)我不要錢(qián),他們就不要票。我沒(méi)辦法只好收下了錢(qián)。 
            他們走的日子比我早,我去車(chē)站送了他們。我偷偷買(mǎi)了些廣州特產(chǎn)和水果,在他們檢票進(jìn)去的時(shí)候,把東西塞到了他們其中的一個(gè)大編織袋里。 
            看著他們拎著大包小包,里面裝滿(mǎn)的或許不是值錢(qián)的東西,但是臉上洋溢著的幸福的歡笑里,讓人感覺(jué)那一切都很珍貴。 
            他們不時(shí)的回頭看看我,用拎著包的手用力的跟我揮手,咧嘴笑著,眼神里的光彩很溫暖,我內(nèi)心涌起一種莫名的感動(dòng)。竟然有想哭的沖動(dòng),我忍住了,也笑著朝他們揮手。 
            他們的身影漸漸消失在人群中,我沒(méi)走,站在那里,我似乎聽(tīng)到了火車(chē)的鳴笛聲,那一定是他們要回家的那列火車(chē),那火車(chē)?yán)镆欢ㄓ兴麄円丶业膬蓚€(gè)座位。 
            歸途很累,很遙遠(yuǎn),可是回家的路卻很溫暖。 
            我第一次覺(jué)得過(guò)春節(jié)不那么無(wú)聊,我第一次覺(jué)得來(lái)回的路上不那么勞累。整個(gè)年,我過(guò)的很快樂(lè),當(dāng)我再次回到廣州的時(shí)候,他們夫妻還沒(méi)回來(lái)。 
            我想,他們一定是買(mǎi)不到火車(chē)票,要等過(guò)了高峰期才能返回。我安靜的等在那里,看著那扇我隔壁的門(mén),希望,在偶爾一天,能再看到那熟悉的身影。 
            他們來(lái)的真的很遲,元宵節(jié)過(guò)后一個(gè)星期才姍姍來(lái)遲。我微笑著迎接他們,端去我買(mǎi)的湯圓,跟他們分享我所有的快樂(lè)。 
            女人跟男人商量著:想推個(gè)小木車(chē)賣(mài)點(diǎn)水果或者小吃。問(wèn)我的意見(jiàn),我說(shuō)好。與其給別人打工那么累,還不自由,倒真不如自己買(mǎi)點(diǎn)小吃賺錢(qián)好些。 
            于是夫妻倆,便買(mǎi)了個(gè)二手的小木車(chē),批發(fā)了點(diǎn)菠蘿,西瓜,在家練熟了削菠蘿和西瓜的技術(shù),便開(kāi)始上街賣(mài)起了西瓜菠蘿,一塊錢(qián)一塊。白天女人一個(gè)人去,晚上,夫妻倆一起出門(mén),廣州這么亂,丈夫不放心,再晚都陪著老婆賣(mài)完了,再回來(lái)。第二天一早,又去上班。 
            看著他們恩愛(ài)的每天出出進(jìn)進(jìn),我由衷的羨慕卻又高興著,我想,就算苦,兩個(gè)人分擔(dān)開(kāi)來(lái),也是甜的!如果將來(lái)能有這樣一個(gè)人對(duì)我說(shuō);無(wú)論痛苦災(zāi)難,我都會(huì)在你身邊。我聽(tīng)了一定會(huì)哭著嫁給他,雖然我不知道要等這樣的一個(gè)人等多久,但是起碼有了憧憬,人便分外的有了希望起來(lái)。 
            有時(shí),很晚了,還沒(méi)把削好的賣(mài)完,他們就拿回來(lái),分給我吃。我每吃一塊就會(huì)笑著對(duì)他們說(shuō):我又吃掉你們一塊錢(qián)。 
            其實(shí)我在心里明白,他們完全可以不用送給我吃,他們生活拮據(jù),完全可以自己吃掉,剩下的又不多,水果吃了又對(duì)身體好,以前平時(shí)都不舍得買(mǎi)。可是他們?nèi)匀辉敢夥纸o我,因?yàn)椋谒麄兊膬?nèi)心里,他們認(rèn)為是好的東西,都愿意跟別人分享。 
            記得以前,在學(xué)習(xí)和生活中,我們經(jīng)常能接觸到:無(wú)私,奉獻(xiàn),善良這些美好的字眼,可是不知道什么時(shí)候我們的周?chē)l(fā)生了變化,在我們的字典里再也看不到那些美麗的東西,自私自利,冷漠,代替了那些小小的感動(dòng),成了我們的主流。
            當(dāng)我,又一次體會(huì)到這種久違了的感覺(jué)的時(shí)候,我欣喜若狂,像個(gè)孩子撿拾到了珍貴的寶貝,我想我一定好好珍藏起來(lái),在哪天忘記的時(shí)候拿出來(lái)看看,提醒自己。 
            那天,我下午回來(lái),看到女人在家,很奇怪她沒(méi)出去賣(mài)東西。就半開(kāi)玩笑的說(shuō):老板,該開(kāi)工了?怎么還沒(méi)走?女人看到我,先是燦然的笑了笑,說(shuō):今天一天都沒(méi)出去,做買(mǎi)賣(mài)的家什沒(méi)了! 
            沒(méi)了?賣(mài)了?丟了?我連炮竹的問(wèn)道。她說(shuō):昨晚,被城市管理者抓到了,都給砸爛了! 
            砸爛了?憑啥?我氣洶洶的問(wèn)。她無(wú)奈的搖頭,說(shuō):說(shuō)是影響市容市貌,還影響環(huán)境衛(wèi)生!他們沒(méi)別的事,就是專(zhuān)門(mén)抓小商販的! 
            我驚呆了,抓小商販的?我突然一陣悲哀,就算有一百個(gè)理由抓你們,也用不著砸打搶吧?! 跟別人說(shuō)明白不就行了么?用的著這么土匪行為么? 
            女人聽(tīng)了我的話,竟然笑了,說(shuō):我就心疼那菠蘿西瓜,好好的,削好的被扔了,沒(méi)削好的也被砸爛了扔的滿(mǎn)地是,我倒糊涂了,是我們推小車(chē)賣(mài)西瓜臟呢?還是把西瓜砸爛在地上,弄的一地西瓜渣滓臟呢?! 
            聽(tīng)著女人的疑問(wèn),我竟然不知道怎么回答! 
            是啊,到底是誰(shuí)更骯臟?是那賣(mài)西瓜的小販?還是那砸西瓜攤的城市管理者? 
            原本干干凈凈的一切,究竟誰(shuí)是罪魁禍?zhǔn)祝烤故钦l(shuí)弄臟了我們的世界?!
            35樓 
            一輛花了一個(gè)月生活費(fèi)買(mǎi)來(lái)的破舊的小木車(chē),一堆花了半個(gè)月生活費(fèi)買(mǎi)來(lái)的西瓜菠蘿,竟然在光天化日之下,被一群同樣跟你都叫做人的家伙砸了個(gè)稀巴爛,任由你苦苦哀求,任由你好話說(shuō)盡,也任由你眼淚滂沱! 
            無(wú)情的打砸把你要生存的一點(diǎn)點(diǎn)希望給砸碎,冷漠的言語(yǔ)將你最后的自尊踐踏的體無(wú)完膚,吼來(lái)喝去的態(tài)度對(duì)你的乞求熟視無(wú)睹,就這樣,在一個(gè)人人平等的社會(huì)里,你被人踩在了腳底下! 
            我能想象的出,女人當(dāng)時(shí)的那種心碎,那種絕望,那種甚至是可憐的尊嚴(yán)被踐踏的傷悲。可是,就算我再怎么去理解,我卻永遠(yuǎn)不能替代那種傷心欲絕的體會(huì)。也許,這就是人類(lèi)的悲哀,一種你無(wú)論如何不能逾越,不能跨過(guò)的鴻溝,你只能去了解,卻不能去感受。 
            我無(wú)力的想著所發(fā)生的一切,卻又無(wú)能為力的苦笑。我竟然想為她討個(gè)說(shuō)話的能力都沒(méi)有,我感到了自己的有限,感到了自己總在接受了別人的恩賜后卻不能報(bào)答的那種難受,那種矛盾的苦楚。 
            我很想,再出錢(qián)幫他們買(mǎi)輛小車(chē),可是女人說(shuō)無(wú)論如何不敢去賣(mài)西瓜菠蘿了,不是怕城市管理者,是受不了那種活生生的好東西被糟蹋的場(chǎng)面,是見(jiàn)不得那種一片狼藉的情景。
            我盡量出些能賺錢(qián)的主意,女人說(shuō)老鄉(xiāng)幫她找了個(gè)發(fā)傳單的兼職,不累,她想先做著。我看著她有些消瘦的臉龐,心很疼! 
            想著這些天發(fā)生的事,我越想越上火,恨不得把這個(gè)世界洗刷一遍,可是只我一個(gè)人的眼淚不夠,甚至全世界的人的眼淚也不夠! 
            我竟然氣的牙疼起來(lái),半邊臉都腫了,疼的我食不下咽,鼻子也因?yàn)檠捞凵匣穑鞅茄N腋纱嗾?qǐng)了假,去醫(yī)院看牙。 
            幾天折騰下來(lái),吃藥,打針不管用,后來(lái)重新檢查,又說(shuō)牙疼發(fā)炎引起了這里毛病,那里毛病,然后又開(kāi)始治療,又一通打針,吃藥,檢查,再檢查,結(jié)果還是沒(méi)好,牙還繼續(xù)疼著,我繼續(xù)郁悶著。 
            最后,醫(yī)生覺(jué)得給我拔牙補(bǔ)牙!會(huì)更有效,又折騰了幾天,總算開(kāi)始轉(zhuǎn)好。這一個(gè)牙疼,花了6000多塊。我才知道,原來(lái)嘴巴里長(zhǎng)的是28顆金豆子,貴著呢! 
            可是看到新聞上那些天價(jià)醫(yī)療費(fèi),我又欣慰了,別人看個(gè)病都幾百萬(wàn)呢,我才6000夠便宜的了! 
            我突然感慨起來(lái),也許有的人能付得起天價(jià)醫(yī)療費(fèi),可是我付不起!也許我能付得起6000塊錢(qián)的治療牙疼的錢(qián),可是有的人就付不起!和還有更多的人比我貧窮,還有更多的人看不起病!
            看病貴,看病難,這已不是什么新鮮話題,可是這個(gè)根深蒂固的問(wèn)題卻始終沒(méi)得到解決!我想到我們不遠(yuǎn)的鄰國(guó)印度,它雖然還不太富有,雖然也人口眾多,但是醫(yī)療制度卻還完善,全民醫(yī)療免費(fèi)。我不由的羨慕起來(lái),不由的想著哪天我們也能享受到此等待遇! 
            如果能有那么一天,我想,報(bào)道上就再也不會(huì)有某某小女孩得白血病家人傾家蕩產(chǎn)籌錢(qián)治病,也不會(huì)有,,
            生病是誰(shuí)的錯(cuò)? 身體的錯(cuò)么?! 沒(méi)錢(qián)治病是誰(shuí)的錯(cuò)?家人的錯(cuò)么?!醫(yī)療費(fèi)用居高不下誰(shuí)的錯(cuò)?醫(yī)生的錯(cuò)么?! 
            也許誰(shuí)都錯(cuò)了,也許誰(shuí)都沒(méi)錯(cuò)!
            那天,我捂著半邊臉,忍著隱隱作痛的牙,心里恨恨的想:這6000塊錢(qián)算是白花了。 
            女人自從攤子被砸了后,便兼職發(fā)傳單,可是活兒并不是天天都有,所以也是有一天沒(méi)一天的在家歇著。這天她看到我蹲在門(mén)口,抱著頭不說(shuō)話,嚇壞了。 
            她拍了拍我的肩膀,我抬起頭,她才看到我的臉腫了。她心疼的問(wèn):怎么了?這是?我嘴里含糊不清的嘟囔著:倒霉啊,牙疼,快要老命了。 
            她急忙問(wèn):看醫(yī)生沒(méi)?要不要緊?我從疼痛的牙縫里擠出簡(jiǎn)單的話:看了,沒(méi)用, 白花6000塊,現(xiàn)在是牙也疼,心也疼! 
            女人讓我張開(kāi)嘴看了看,自語(yǔ)道:腫的很厲害,要從根里治,你等著。說(shuō)完就一溜煙跑回家。 
            不大會(huì),女人端來(lái)一碗黑乎乎的湯水要我喝,我看著臟兮兮的,就皺起了眉頭。女人硬逼著我喝下去。就這樣,連續(xù)好幾天,女人都讓我喝那種苦苦的黑湯水。結(jié)果竟然消腫了,慢慢的牙也不怎么疼了。我想一定是那黑湯水起了作用。 
            原來(lái),女人怕在異地他鄉(xiāng)生水土不服或者有個(gè)頭疼腦熱的,就從老家?guī)Я诵┲兴庍^(guò)來(lái),正好她老公有牙疼的毛病,就帶了些這方面的中藥。看到我疼的厲害,她就把那些藥都熬了湯給我喝,沒(méi)想到吃了幾付,就好轉(zhuǎn)了。 
            我想著,她把藥都熬給我喝了,萬(wàn)一哪天她老公牙疼,可怎么辦?女人竟然笑笑:沒(méi)事,他咬咬牙就挺過(guò)去了。我知道牙疼的滋味,所以心里還是后悔吃了人家的藥。 
            我問(wèn)這藥很貴吧?女人笑了:不值錢(qián)的,都是些花啊草啊的,家鄉(xiāng)的山上多的是,又不是什么高科技生產(chǎn)出來(lái)的化學(xué)**,只幾塊錢(qián)一副! 
            我開(kāi)玩笑的說(shuō):幾塊錢(qián)?那我那6000塊錢(qián)不是喂狗了?女人笑了:我們那里窮,人病去不起醫(yī)院,只能找個(gè)老中醫(yī)開(kāi)點(diǎn)中藥熬熬喝!6000塊看個(gè)牙疼,就是村長(zhǎng)一輩子也沒(méi)這個(gè)福氣!那要多少人家一年的收入呢。 
            我聽(tīng)著女人的話,開(kāi)始心涼涼的。6000塊,這數(shù)字在我心里邊格外沉重。 
            女人突然問(wèn)了一句:在這里的醫(yī)院生孩子要多少錢(qián)?我沉吟了一下說(shuō):估計(jì)要個(gè)一萬(wàn)塊吧!女人嚇了一跳:一萬(wàn)塊?那要是生完了就走,不住院呢?我想了想:也要好幾千吧!女人愣了:馬上要生了進(jìn)醫(yī)院,讓醫(yī)生幫忙接生出來(lái),我立馬走人,也要上萬(wàn)么?我不用他們啥東西,就借他們點(diǎn)時(shí)間,搭把手就行了。 
            我沒(méi)明白女人話的意思,也沒(méi)往深處想,只是擔(dān)心著那些月收入不足千元的民工的老婆,如果來(lái)到這大都市,不小心懷孕了;來(lái)不及回鄉(xiāng)下老家生產(chǎn),,他們要拿什么去進(jìn)這大城市醫(yī)院的大門(mén),平安的把孩子生下來(lái)呢?! 
            生存是人共同的權(quán)利,如果連生存都被剝奪,或者說(shuō)為生存要付出慘痛的血的代價(jià),這樣的生存還能配的上人類(lèi)賦予它的最初的意義么? 
            一個(gè)生命,一顆牙齒,一句問(wèn)話,告訴我:生存= 艱辛! 
            看著自己滾圓的大腿,一天肥一圈的腰枝,近似蠕動(dòng)的龐大軀體,我再也不能忍受**漸臃腫的軀體。我決定要減肥! 
            減肥,對(duì)于一個(gè)有些懶惰的人來(lái)說(shuō),是很困難的事。克服這個(gè)問(wèn)題,需要一個(gè)支撐點(diǎn),我想到找一個(gè)人監(jiān)督,或者找一個(gè)人陪我減肥來(lái)調(diào)動(dòng)我的積極性。 
            我腦海里蹦出的第一個(gè)人,就是隔壁現(xiàn)在不用忙著上班的女人。我毫不猶豫的告訴了她我的想法,她沒(méi)遲疑就答應(yīng)了。 
            從此,她每天早晚都陪我跑步,陪我做運(yùn)動(dòng)。每次我都自嘲的跟她開(kāi)玩笑:我真殘忍,找你這么一個(gè)皮包骨頭的瘦子跟我一起減肥!她總是安慰我:鍛煉身體有益健康是好事,不管胖瘦運(yùn)動(dòng)都有好處。 
            我心安理得的每天讓她陪著我,看著她越來(lái)越瘦,我又不免內(nèi)疚,可是每次她的笑臉卻又把我的那點(diǎn)愧疚吹的蕩然無(wú)存。我只好總是借口減肥,把好吃的,好喝的都給她,她不要,我就生氣,她沒(méi)辦法只好收下,眼里卻總是滿(mǎn)是不好意思的感激和受之有愧。于是她用更拼命的陪我運(yùn)動(dòng)來(lái)償還我對(duì)她的那點(diǎn)小小的恩惠。 
            我做夢(mèng)也沒(méi)想到,愚人節(jié)后的第二天,她來(lái)告訴我:她要回老家了!我以為她在補(bǔ)上愚人節(jié)沒(méi)給我開(kāi)過(guò)火玩笑的機(jī)會(huì),可是我錯(cuò)了,她是真的要回家!因?yàn)樗龖言形辶鶄€(gè)月了! 
            她本來(lái)是打算在這邊生的,后來(lái)聽(tīng)我說(shuō)到生孩子估計(jì)都要上萬(wàn)的,就下決心提前回老家,在老家待產(chǎn)。怕再晚,挺著臨盆的大肚子坐火車(chē)不方便,所以才決定現(xiàn)在就走。 
            我驚呆了,不知道該說(shuō)什么;我滿(mǎn)腦子浮現(xiàn)的都是,她懷孕了,我還讓她陪我做劇烈運(yùn)動(dòng)的鏡頭!我感到自己的可恨,一個(gè)懷孕五六個(gè)月的女人,挺著隆起的肚子天天陪在我身邊,我竟然視而不見(jiàn),是我自私到只考慮自己?還是我冷漠到忘記了他人死活? 
            想著她每天笑靨如花,從來(lái)沒(méi)表現(xiàn)出半點(diǎn)怨言和不高興,我第一次感到自己的可惡。我開(kāi)始鄙視自己,憎恨自己那種習(xí)慣于接受別人付出的不良嗜好。 
            看上去,她更瘦了,于是我更痛恨起自己來(lái)。也許她每天沒(méi)命的跟我鍛煉,回家卻吃不飽,第二天卻要半餓著肚子繼續(xù)陪我運(yùn)動(dòng),肚子里還有一個(gè)消耗著營(yíng)養(yǎng)的胎兒,這是怎樣的一份艱辛的心情?這是怎樣的一種殘忍的場(chǎng)面? 
            當(dāng)我大吃大喝,山珍海味的把自己喂養(yǎng)成一個(gè)十足的胖子,卻要求一個(gè)每天吃不飽,餓著肚皮的孕婦跟我一起運(yùn)動(dòng)減肥?!這就是人性的自私,這就是我的自私到極點(diǎn)的本質(zhì)的最有力說(shuō)明。 
            我不得不承認(rèn),自始至終,我并沒(méi)高尚到哪里去,我還是那個(gè)第一次見(jiàn)他們的時(shí)候的那個(gè)齷齪的人,盡管極力想用幫助別人來(lái)掩蓋自己的哪些自私的本性,可是還是失敗了,本質(zhì)像個(gè)烙印,已經(jīng)刻進(jìn)了我的靈魂深處! 
            面對(duì)這著這樣一個(gè)殘酷的事實(shí),我開(kāi)始無(wú)地自容,我突然感覺(jué)我根本配不上做他們的朋友,盡管我曾那么的想,但是我不夠格,也沒(méi)資格去填下那份上帝面前的契約,我只是個(gè)自私的懦夫,我沒(méi)權(quán)利要求靈魂對(duì)我有任何絲毫的原諒! 
            我被自己重重的摔倒在地上,被人性的刀子割的體無(wú)完膚。那感覺(jué)很痛;很麻木! 
            我的所有的思想,他們并沒(méi)有任何的覺(jué)察,只是用一種悲傷的情緒跟我道別。 
            女人是一個(gè)人走的,為了省錢(qián),女人死活沒(méi)讓男人送。 
            我不知道一個(gè)挺著肚子的女人,拎著大包小包好幾個(gè),在熙熙攘攘的人群中是怎樣擠上了火車(chē),又是怎樣的一個(gè)人孤孤單單的回到了家。但是,我知道,如果是我,我做不到,不是沒(méi)勇氣,是沒(méi)那個(gè)能力! 
            沒(méi)幾天,男人就搬走了,因?yàn)樗X(jué)得一個(gè)人住個(gè)幾百塊的房子不劃算,賺的錢(qián)都搭在住上了,為了省錢(qián),他選擇了免費(fèi)的,和一群民工一起住在一個(gè)橋下搭的窩棚里。男人臨走的時(shí)候,我給了他一個(gè)信封,信封里有一封我寫(xiě)給他老婆的信和一張銀行卡。我叮囑他,無(wú)論如何,回家的時(shí)候記得把信帶給他老婆。他點(diǎn)頭答應(yīng)著,很堅(jiān)定的說(shuō):保證完成任務(wù)。 
            從此我隔壁的儲(chǔ)藏室空出來(lái)了,房東說(shuō)我可以放我那張舊沙發(fā)了,可是我沒(méi)放,只是在每次經(jīng)過(guò)的時(shí)候,都會(huì)停下來(lái),默默的盯著房門(mén)看很久,很久。 
            從那以后,我再也沒(méi)見(jiàn)過(guò)他們夫妻二人。我不知道男人還在不在他說(shuō)的橋下的窩棚里住著,也不知道他有沒(méi)有時(shí)間回老家一趟順便把我的那封信交給他老婆,更不知道在那個(gè)我連名字都叫不出來(lái)的他們的老家,他的老婆是否安好。 
            只是,從他們離開(kāi)后,我開(kāi)始喜歡穿平跟鞋,因?yàn)槟歉杏X(jué)很踏實(shí)。 
            踏實(shí)到,我想著明天開(kāi)始一個(gè)人學(xué)會(huì)為自己的心靈搬家。

            posted @ 2011-09-11 19:04 陳曉 閱讀(370) | 評(píng)論 (0)編輯 收藏

            2011年8月9日 #

            spy++和游戲修改器

            這幾天做了兩個(gè)東西,spy++ 和游戲修改器。 spy++ 就是模仿 vs的那個(gè)工具spy++ 。游戲修改器,就是暴力搜索內(nèi)存,找到我們關(guān)心的數(shù)據(jù),然后進(jìn)行更改。
            總之這些東西做過(guò)之后感覺(jué)就是都不難,但是在做的時(shí)候多少會(huì)感覺(jué)點(diǎn)吃力。唉,功力不夠啊。繼續(xù)修煉……
            閑下來(lái)無(wú)事,記錄下它們的過(guò)程吧。
            spy++ 分析(用vs2005做的——)
            spy++ 需要拖動(dòng)一個(gè)小圖標(biāo) 然后移動(dòng)到別的窗口上(本窗口也可以),然后畫(huà)出窗口的矩形,得到窗口的一些信息。
            拖動(dòng)的這個(gè)小圖標(biāo),是一個(gè)picture conctrl控件 ,屬性的type改成icon 也就是加載一個(gè)icon圖標(biāo),在屬性imag里把圖標(biāo)選上。
            給這個(gè)控件添加一個(gè)類(lèi),在這個(gè)類(lèi)里做這個(gè)控件的 小圖標(biāo)拖動(dòng)操作,即 lbuttondown的時(shí)候 把鼠標(biāo)加載成 小圖標(biāo),把picture里的icon換成空心的。
            當(dāng)鼠標(biāo)抬起的時(shí)候把鼠標(biāo)換回來(lái)原先的光標(biāo),然后再把picture里的icon換成有小圖標(biāo)的那個(gè)圖標(biāo)。
            這里要主次 要把鼠標(biāo)設(shè)成全局有效,要不然的話,鼠標(biāo)位置出了這個(gè)picture的范圍就失效了。函數(shù)是 SetCapture()
            然后再lbuttonup的時(shí)候記得 要釋放。ReleaseCapture();
                       就是這幾個(gè)圖標(biāo)。吼吼。
            把這個(gè)小圖標(biāo)托到 窗口上的時(shí)候怎么在窗口上畫(huà)出矩形呢? 
            當(dāng)然是先得到這個(gè)矩形了。我要先得到這個(gè)窗口的句柄,我們才能得到windowrect 然后才能畫(huà)。
            所以各 下一步就是WindowFromPoint(Point)傳一個(gè)鼠標(biāo)點(diǎn) 然后得到這個(gè)點(diǎn)的window的hWnd了 哈,很強(qiáng)大的函數(shù)啊。
            得到窗口句柄就好辦了。GetWindowRect得到矩形區(qū)域啊,然后用windowdc 畫(huà),用windowdc的原因就是,我們要在整個(gè)桌面上都能畫(huà)。
            這里畫(huà)這個(gè)矩形有個(gè)技巧,我們要畫(huà)出來(lái),但是當(dāng)我們不需要這個(gè)矩形的時(shí)候我們還要給這個(gè)顏色畫(huà)回原來(lái)的背景色。這里算是整個(gè)程序的一個(gè)難點(diǎn),考驗(yàn)畫(huà)圖工夫。
            dc設(shè)備中默認(rèn)選入的是一個(gè)黑色畫(huà)筆,一個(gè)白色畫(huà)刷,也就是說(shuō)正常我們畫(huà)矩形的話會(huì)畫(huà)出黑邊白底得矩形,現(xiàn)在我們要透明的底,然后畫(huà)的黑邊還要可畫(huà)回原先的背景色。有一個(gè)函數(shù)通過(guò)dc調(diào)用  dc.SetROP2(R2_NOTXORPEN);參數(shù)傳這個(gè)同或運(yùn)算,這個(gè)函數(shù)的意思就是,拿你設(shè)備中的畫(huà)筆畫(huà)刷 去跟背景色運(yùn)算,同或運(yùn)算。
            比如背景有個(gè)顏色是10010100011   你的畫(huà)刷顏色是白色 也就是111111111111(比如就這么多位)  白色因?yàn)槭?55,255,255所以都是1  
            然后進(jìn)行同或運(yùn)算得到的是什么?是10010100011(同或,同則1,不同則0)!也就說(shuō) 還是背景色,這就做到了畫(huà)刷透明。然后畫(huà)筆是黑色,0000000000
            跟背景色同或運(yùn)算的到得是01101011100 這個(gè)。然后這個(gè)就是真正畫(huà)到屏幕上顯示出來(lái)的顏色。怎么在把這個(gè)顏色畫(huà)沒(méi)呢?大家在用這個(gè)黑色的畫(huà)筆畫(huà)一下,在同或運(yùn)算看看結(jié)果是什么?10010100011 看看是不是又變回去了?吼吼。等會(huì)下面貼代碼畫(huà)圖這里的。
            這個(gè)畫(huà)圖就完事了。而且窗口句柄我們也通過(guò)windowfrompoint得到了。有了窗口句柄我們能得到很多東西了。
            比如說(shuō)窗口類(lèi)名GetClassName
            窗口標(biāo)題GetWindowText
            窗口矩形GetWindowRect
            窗口id等信息GetWindowLong
            進(jìn)程id   GetWindowThreadProcessId
            進(jìn)程路徑 OpenProcess()   GetModuleFileNameEx();

            還可以向窗口中發(fā)消息 sendmessage(這個(gè)比較好玩,可以拿你的spy++去關(guān)閉別人的窗口。
            然后把他設(shè)置到窗口上就可以了。
            代碼貼一小段。

            void CMyPic::OnTimer(UINT_PTR nIDEvent)
            {
                POINT p;
                ::GetCursorPos(
            &p);
                hWnd
            =::WindowFromPoint(p);
                CRect rect;
                ::GetWindowRect(hWnd,
            &rect);
                CWindowDC dc(NULL);
                CPen redpen(PS_SOLID,
            3,RGB(255,0,0));
                dc.SelectObject(
            &redpen);
                dc.SetROP2(R2_NOTXORPEN);
                dc.Rectangle(rect);
                
            //顯示回去 就向沒(méi)畫(huà)一樣
                Sleep(300);
                dc.Rectangle(rect);
                ReleaseDC(
            &dc);
                CStatic::OnTimer(nIDEvent);
            }

            這個(gè)畫(huà)圖在timer里畫(huà),能做到 閃動(dòng)的巨型。(我選的紅色畫(huà)筆,你可以把紅色跟背景同或算算,跟黑色是一樣的,在畫(huà)一次就能畫(huà)回來(lái)背景色)
            下面的代碼是 寫(xiě)我的spy++的第一頁(yè)的代碼

            void CMyspyDlg::UpdataWindowNormal(HANDLE hWnd)
            {
             CString str;
             int state=((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();
             //窗口句柄
             if (state==BST_CHECKED)
             {
              str.Format(_T("%p"),hWnd);
             }
             else
             {
              str.Format(_T("%d"),hWnd);
             }
             m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_HANDLE)->SetWindowText(str);
             //窗口類(lèi)名
             TCHAR tempTC[50];
             GetClassName((HWND)hWnd,tempTC,49);
             m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_CLASSNAME)->SetWindowText(tempTC);
             //窗口標(biāo)題
             ZeroMemory(tempTC,100);
             ::GetWindowText((HWND)hWnd,tempTC,49);
             if (*tempTC==_T('\0'))
             {
              m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_TITLE)->SetWindowText(_T("無(wú)"));
             }
             else
             {
              m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_TITLE)->SetWindowText(tempTC);
             }
             //窗口矩形
             CRect rect;
             ::GetWindowRect((HWND)hWnd,&rect);
             str.Empty();
             if (state==BST_CHECKED)
             {
              str.Format(_T("x=%x,y=%x,width=%x,hight=%x"),rect.left,rect.top,rect.Width(),rect.Height());
             }
             else
             {
              str.Format(_T("x=%d,y=%d,width=%d,hight=%d"),rect.left,rect.top,rect.Width(),rect.Height());
             }
             m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_WINRECT)->SetWindowText(str);
             //窗口id
             str.Empty();
             LONG l=::GetWindowLong((HWND)hWnd,GWL_ID);
             str.Format(_T("%ld"),l);
             m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_WINID)->SetWindowText(str);
             //進(jìn)程id
             DWORD dword;
             ::GetWindowThreadProcessId((HWND)hWnd,&dword);
             str.Empty();
             if (state==BST_CHECKED)
             { 
              str.Format(_T("%p"),dword);
             }
             else
             {
              str.Format(_T("%d"),dword);
             }
             m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_PROCESSID)->SetWindowText(str);
             //程序路徑
             HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dword);
             TCHAR src[200];
             GetModuleFileNameEx(hProcess,NULL,src,199);
              m_TabCtrl.m_dlg[0].GetDlgItem(IDC_EDIT_PROSRC)->SetWindowText(src);
            }

            ======================================================================
            效果圖

            ======================================================================

            好了 下面記錄下游戲修改器
            其實(shí)我用的方法很笨的,但是比較簡(jiǎn)單。改成功了植物大戰(zhàn)僵尸中的太陽(yáng)值。
            =======================================================================
            效果圖

            =======================================================================
            這個(gè)游戲修改 就是讀內(nèi)存,值進(jìn)行比較,然后找到一些跟你輸入的值相同的地址,記錄在鏈表中,然后讓這個(gè)值變化,在對(duì)鏈表進(jìn)行搜索
            如果鏈表中的地址中的值也變化了,正確的地址就在這鏈表里,繼續(xù)變化值,之后最后地址確定下來(lái)為止,地址確定下來(lái)之后就可以修改了。
            其中用到得函數(shù) 先是 快照,(我在前面做任務(wù)管理器中寫(xiě)到過(guò)) 得到進(jìn)程id 進(jìn)程名等。
            然后用openprocess打開(kāi)方式用要可讀,可寫(xiě),或者獲得所有權(quán)PROCESS_ALL_ACCESS。得到進(jìn)程的句柄。
            然后通過(guò)進(jìn)程的句柄讀進(jìn)程中的數(shù)據(jù)ReadProcessMemory因?yàn)樘摂M內(nèi)存共有4gb  后2gb是系統(tǒng)用,還有前多少K(不同系統(tǒng)不一樣)也系統(tǒng)用。所以我們只搜索前兩gb ,但是前面那些系統(tǒng)的我們就忽略了,畢竟是小數(shù),不在乎多讀那點(diǎn)了。
            ReadProcessMemory這個(gè)函數(shù)第一個(gè)參數(shù)是進(jìn)程handle,第二個(gè)參數(shù) 是基址(即從那個(gè)位置開(kāi)始讀,是一個(gè)地址),第三個(gè)參數(shù)是讀出的buff 第四個(gè)是讀的大小。 由于內(nèi)存頁(yè)是4kb 我們?yōu)榱俗x的速度快 所以我們每次就讀4kb。 讀出這4kb 放入buff中 然后 拿我們要找的數(shù)值比如是100,(我們假定我們的數(shù)是2字節(jié)),在4kb中1字節(jié)1字節(jié)的向后走,兩字節(jié)兩字節(jié)的比較 如果等于100則加入鏈表
            DWORD dOneGB=1024*1024*1024;//1gb的地址
             DWORD dBase=0;//基址是0
             DWORD dOnePage=4*1024;//一個(gè)內(nèi)存頁(yè)4kb
             BYTE buffer[4*1024];//裝一個(gè)內(nèi)存也
             WORD value;
             CString str;
             int pos=0;
             POSITION listpos;
            //得到我們窗口上輸入的值 value
             GetDlgItem(IDC_EDIT_INPUT)->GetWindowText(str);
             value=_wtoi(str);
             for (dBase;dBase<dOneGB*2;dBase+=dOnePage)//遍歷2gb每次 加一頁(yè)  4kb
             {
              if(ReadProcessMemory(hProcess,(LPCVOID)dBase,buffer,4*1024,NULL))//讀一個(gè)頁(yè),因?yàn)檫@個(gè)讀取是不一定成功的所以加if(有的內(nèi)存系統(tǒng)不讓你讀)
              { 
            //進(jìn)行比較 如果相同加入鏈表CList m_Data;
               for(DWORD b=0;b<dOnePage-1;b++)
               {
                WORD tempword=*((WORD *)(buffer+b));
                if (tempword==value)
                {
                 if (pos==0)//如果是頭結(jié)點(diǎn)就 加在頭上,之后就加在后邊
                 {
                  listpos = m_Data.AddHead(dBase+b);
                  pos++;
                 }
                 else
                 {
                  listpos = m_Data.InsertAfter(listpos,dBase+b);
                 }
                }
               }
              }
             }

            這樣這個(gè)第一次搜索就完成了。搜出了一堆 等于100的值 的地址,放入了鏈表
            下次就是   改變100為150,然后再鏈表中搜索等于150的。
            int dataCount=m_Data.GetCount();
             pp=m_Data.GetHeadPosition();
              for (int i=0;i<dataCount;i++)
              {
               DWORD tempvalue=m_Data.GetNext(pp);
            //根據(jù)基址讀出兩個(gè)字節(jié)的數(shù),然后跟value比較
               ReadProcessMemory(hProcess,(LPCVOID)tempvalue,&buff,2,NULL);
               if(buff==value)
               {
               if (head)
               {
                li.AddHead(tempvalue);
                head=FALSE;
               }
               else
               {
                li.AddTail(tempvalue);
               }
               }
              }
            哈哈,然后最后就搜到了那個(gè)值得地址,,然后根據(jù)這個(gè)地址改變 其中的值就行了

            WriteProcessMemory(hProcess,(LPVOID)address,&newValue,2,NULL);
            思路倒是很簡(jiǎn)單,寫(xiě)的時(shí)候總會(huì)出錯(cuò)誤,或是內(nèi)存錯(cuò)誤或是中斷的,要耐心調(diào)調(diào)。
            為了植物大戰(zhàn)講師的無(wú)限陽(yáng)光,吼吼。go


             

            posted @ 2011-08-09 15:06 陳曉 閱讀(4065) | 評(píng)論 (8)編輯 收藏

            2011年8月1日 #

            進(jìn)程通信——郵槽和命名管道

            今天記錄下自己學(xué)的郵槽和命名管道,學(xué)習(xí)過(guò)程中遇到點(diǎn)問(wèn)題也拿出來(lái)分享下。哈  開(kāi)整
            先說(shuō)一下大體的概念?yuàn)W。

            郵槽定義

            郵槽(Mailslot)也稱(chēng)為郵件槽,是Windows 提供的進(jìn)程間通信的手段,

            其提供的是基于不可靠的,郵件槽只支持單向數(shù)據(jù)傳輸,也就是服務(wù)器只能接收數(shù)據(jù),而客戶(hù)端只能發(fā)送數(shù)據(jù),

            何為服務(wù)端?創(chuàng)建郵槽的那一端就是服務(wù)端。
            還有需要提及的一點(diǎn)是,客戶(hù)端在使用郵槽發(fā)送數(shù)據(jù)的時(shí)候只有當(dāng)數(shù)據(jù)的長(zhǎng)度 < 425 字節(jié)時(shí),

            才可以被廣播給多個(gè)服務(wù)器,如果消息的長(zhǎng)度 > 425 字節(jié)的話,那么在這種情形下,郵槽是不支持廣播通信的。
            這是我看到的郵槽的簡(jiǎn)要說(shuō)明吧。
            先說(shuō)下郵槽的使用過(guò)程吧。然后再分析函數(shù),在貼代碼。非常簡(jiǎn)單哦
            服務(wù)端:                                        客戶(hù)端:
            首先創(chuàng)建郵槽CreateMailslot               打開(kāi)油槽CreateFile
            讀取數(shù)據(jù) ReadFile                           寫(xiě)入數(shù)據(jù)WriteFile
            完事了,只有這四個(gè)函數(shù)。也很容易理解。 客戶(hù)端寫(xiě)入數(shù)據(jù) 服務(wù)端讀取數(shù)據(jù)。
            CreateMailslot(_T("\\\\.\\mailslot\\chenxiao"),0, MAILSLOT_WAIT_FOREVER,NULL);
            第一個(gè)參數(shù)是個(gè)固定格式\\.\\mailslot\\name   點(diǎn)代表本機(jī)。mailslot是硬編碼 不能變,name可以自己起個(gè)郵槽的名字。‘\’放入字符串中要用轉(zhuǎn)義字符\
            所以就寫(xiě)成了"\\\\.\\mailslot\\chenxiao"
            第二個(gè)參數(shù)To specify that the message can be of any size, set this value to zero. 設(shè)置成0
            第三個(gè)參數(shù)為了下面的讀取操作應(yīng)該等待的時(shí)間 MAILSLOT_WAIT_FOREVER 傳這個(gè)代表參數(shù)代表永久等待。
            最后一個(gè)參數(shù)安全屬性 嘎嘎 null
            ReadFile(hMailSlot,pData,sizeof(TCHAR)*80,&dByteRead,NULL);
            這幾個(gè)參數(shù)很簡(jiǎn)單了。第一個(gè)參數(shù)就是創(chuàng)建郵槽返回來(lái)的句柄 第二個(gè)參數(shù)一個(gè)[out]buffer用來(lái)接收從郵槽中讀出來(lái)的東東。第三個(gè)參數(shù)就是讀取多少個(gè)字節(jié)。
            第四個(gè)參數(shù)基本沒(méi)用,是一個(gè)[out]的LPDWord  很蛋疼只能DWORD dByteRead; 然后傳個(gè)他的地址。
            因?yàn)閙sdn上說(shuō)了If lpOverlapped is NULL, lpNumberOfBytesRead cannot be NULL;
            lpoverlapped就是我們的最后一個(gè)參數(shù),這個(gè)參數(shù)可以設(shè)置同步和異步,如果文件打開(kāi)模式是FILE_FLAG_OVERLAPPED這個(gè)的話,我們這個(gè)就不可以是NULL
            這個(gè)同步異步問(wèn)題我在下面的命名管道中在說(shuō)。這里就先過(guò)去。這個(gè)參數(shù)設(shè)成NULL。
            客戶(hù)端函數(shù)
            CreateFile(_T("\\\\.\\mailslot\\chenxiao"),GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);
            這幾個(gè)參數(shù)也很容易理解了。第一個(gè)參數(shù)要和創(chuàng)建郵槽的時(shí)候的參數(shù)一樣。如果要遠(yuǎn)程通信的話可以把‘.’設(shè)置成服務(wù)器 主機(jī)名 或者在一個(gè)區(qū)域內(nèi)廣播‘*’
            但是我用兩個(gè)機(jī)器實(shí)驗(yàn)了,沒(méi)有成功,目前我只能用郵槽在本地一個(gè)機(jī)器上通信。。。尷尬。。有知道怎么在兩個(gè)機(jī)器上通信的,要給我留言教教我哦。
            后幾個(gè)參數(shù)根據(jù)參數(shù)名大家就可以猜個(gè)差不多了,我就不說(shuō)了。吼吼。
            WriteFile(hMailSlot,str,sizeof(TCHAR)*80,&dByteWrite,NULL);這個(gè)函數(shù) 跟 readfile差不多 就是向郵槽中寫(xiě)入數(shù)據(jù)用的。
            第二個(gè)參數(shù)是要寫(xiě)入的內(nèi)容,第三個(gè)是大小(以字節(jié)為單位).
            好了這幾個(gè)函數(shù)都說(shuō)完了。貼上小代碼,就清晰了。

            //服務(wù)器端 我用的c++寫(xiě)的。
            #include <iostream>
            #include 
            <Windows.h>
            #include 
            <tchar.h>
            using namespace std;


            int main()
            {
                HANDLE hMailSlot
            =CreateMailslot(_T("\\\\.\\mailslot\\chenxiao"),0,
                    MAILSLOT_WAIT_FOREVER,NULL);
                 TCHAR pData[
            80];
                 ZeroMemory(pData,
            sizeof(TCHAR)*80);
                 DWORD dByteRead;
                 
            while(1)
               
            {
                     BOOL b
            =ReadFile(hMailSlot,pData,sizeof(TCHAR)*80,&dByteRead,NULL);
                      wprintf_s(_T(
            "%s\n"),pData);
                 }

                
                system(
            "pause");
                
            return 0;
            }
            //客戶(hù)端我在mfc中寫(xiě)的。
            void CclientDlg::OnBnClickedButtonSend()
            {
                 TCHAR str[
            80];
                ZeroMemory(str,
            sizeof(TCHAR)*80);
                 GetDlgItem(IDC_EDIT_INPUT)
            ->GetWindowText(str,70);
                 DWORD dByteWrite;
                 HANDLE hMailSlot
            =CreateFile(_T("\\\\.\\mailslot\\chenxiao"),GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,
                     FILE_ATTRIBUTE_NORMAL,NULL);
                
            if (hMailSlot==INVALID_HANDLE_VALUE)
                
            {
                    MessageBox(_T(
            "createfile失敗,請(qǐng)打開(kāi)服務(wù)器"));
                    
            return ;
                }

                 BOOL b
            =WriteFile(hMailSlot,str,sizeof(TCHAR)*80,&dByteWrite,NULL);
                 GetDlgItem(IDC_EDIT_INPUT)
            ->SetWindowText(_T(""));
                 CloseHandle(hMailSlot);
            }


            這就是運(yùn)行結(jié)果啦。這個(gè)東西沒(méi)啥大用。就是學(xué)習(xí)一下而已。以后萬(wàn)一用到也能弄弄。

            下面我說(shuō)下命名管道。這個(gè)東西坑了我一下午。。。
            郵槽建立的是無(wú)連接的通信。。那么命名管道 就是有鏈接的可靠的通信了。他跟郵槽挺相似的。但是比郵槽好很多。
            同上面。我粘一些概念性的東西。

            命名管道是通過(guò)網(wǎng)絡(luò)來(lái)完成進(jìn)程之間的通信的,命名管道依賴(lài)于底層網(wǎng)絡(luò)接口,

            其中包括有 DNS 服務(wù),TCP/IP 協(xié)議等等機(jī)制,但是其屏蔽了底層的網(wǎng)絡(luò)協(xié)議細(xì)節(jié),

            對(duì)于匿名管道而言,其只能實(shí)現(xiàn)在父進(jìn)程和子進(jìn)程之間進(jìn)行通信,而對(duì)于命名管道而言,

            其不僅可以在本地機(jī)器上實(shí)現(xiàn)兩個(gè)進(jìn)程之間的通信,還可以跨越網(wǎng)絡(luò)實(shí)現(xiàn)兩個(gè)進(jìn)程之間的通信。

            命名管道使用了 Windows 安全機(jī)制,因而命名管道的服務(wù)端可以控制哪些客戶(hù)有權(quán)與其建立連接,

            而哪些客戶(hù)端是不能夠與這個(gè)命名管道建立連接的。

            利用命名管道機(jī)制實(shí)現(xiàn)不同機(jī)器上的進(jìn)程之間相互進(jìn)行通信時(shí),

            可以將命名管道作為一種網(wǎng)絡(luò)編程方案時(shí),也就是看做是 Socket 就可以了,

            它實(shí)際上是建立了一個(gè)客戶(hù)機(jī)/服務(wù)器通信體系,并在其中可靠的傳輸數(shù)據(jù)。

            命名管道的通信是以連接的方式來(lái)進(jìn)行的,

            服務(wù)器創(chuàng)建一個(gè)命名管道對(duì)象,然后在此對(duì)象上等待連接請(qǐng)求,

            一旦客戶(hù)連接過(guò)來(lái),則兩者都可以通過(guò)命名管道讀或者寫(xiě)數(shù)據(jù)。          

            命名管道提供了兩種通信模式:字節(jié)模式和消息模式。

            在字節(jié)模式下,數(shù)據(jù)以一個(gè)連續(xù)的字節(jié)流的形式在客戶(hù)機(jī)和服務(wù)器之間流動(dòng),

            而在消息模式下,客戶(hù)機(jī)和服務(wù)器則通過(guò)一系列的不連續(xù)的數(shù)據(jù)單位,進(jìn)行數(shù)據(jù)的收發(fā),

            每次在管道上發(fā)出一個(gè)消息后,它必須作為一個(gè)完整的消息讀入。

            我相信很多人看了幾句就跳到這里來(lái)了。。概念性的東西 確實(shí)太不好玩了。我也不愛(ài)看。。哈哈
            介紹命名管道需要的函數(shù)。
            服務(wù)器端

            CreateNamedPipe 創(chuàng)建命名管道

             ConnectNamedPip  連接
            ReadFile    讀
            WriteFile  寫(xiě)

            客戶(hù)端

            WaitNamedPipe 查看命名管道
            CreateFile  打開(kāi)命名管道
            WriteFile ReadFile  寫(xiě)   讀

            就這些東西,今天由于不仔細(xì)看msdn 寫(xiě)程序?qū)懨闪恕!!5葧?huì)我在說(shuō)啊。大家要注意哦。
            CreateNamedPipe(_T("\\\\.\\pipe\\chenxiao"),PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,1,1024,1024,2000,NULL);
            很多參數(shù)啊!不怕不怕 慢慢來(lái)
            第一個(gè)我略過(guò)了哦。第二個(gè)大家在msdn上可以看到有
            PIPE_ACCESS_DUPLEX   讀寫(xiě)雙向
            PIPE_ACCESS_INBOUND   數(shù)據(jù)只能從客戶(hù)端到服務(wù)端
            PIPE_ACCESS_OUTBOUND  和上面那個(gè)相反
            這個(gè)參數(shù)我們?cè)O(shè)置成 第一個(gè)。然而通過(guò)msdn大家可以看到這個(gè)參數(shù)可以附加 flag  我們就附加FILE_FLAG_OVERLAPPED 這個(gè)了
            MSDN那一大堆英文我也瞅不太明白,大至意思就是這個(gè)呢 用了這個(gè)參數(shù) 程序操作讀,寫(xiě),連接等操作,可以立馬返回。比如說(shuō)讀一個(gè)大文件吧

            你把這個(gè)文件從頭讀到偉 需要很長(zhǎng)時(shí)間。這樣的話你的readfile函數(shù)就不會(huì)反回  就會(huì)阻塞在那里一直讀。這樣很不好,所以有了這個(gè)參數(shù)。這個(gè)參數(shù)就是使你的讀 寫(xiě) 等待函數(shù)立馬返回,這個(gè)就屬于程序的異步,這個(gè)讀函數(shù)和主程序一起執(zhí)行。
            下一個(gè)參數(shù)就是以字節(jié)流還是消息方式發(fā)送文件 讀取文件。我們采用字節(jié)流方式PIPE_TYPE_BYTE。
            下一個(gè)參數(shù)是最多可以創(chuàng)建幾個(gè)命名管道 比如我們?cè)O(shè)置成3,就是可以創(chuàng)建3個(gè)這樣的管道。我們這里設(shè)置成1,我們只用一個(gè)管道做演示就行。然后是分配的輸入 輸出 緩沖區(qū)大小 ,就類(lèi)似創(chuàng)建線程時(shí)分配棧空間大小一樣。然后是一個(gè)超時(shí)時(shí)間設(shè)置 這個(gè)設(shè)置成0就可以。最后一個(gè)NULL安全屬性

            ConnectNamedPipe服務(wù)端的連接管道函數(shù)這個(gè)函數(shù)兩個(gè)參數(shù)第一個(gè)參數(shù)句柄,第二個(gè)參數(shù)一個(gè)結(jié)構(gòu)體對(duì)象
            這個(gè)結(jié)構(gòu)體呢 里面有一個(gè)事件句柄。剛才上邊由于設(shè)置了異步,所以你要有一個(gè)標(biāo)志著讀結(jié)束的標(biāo)志,這個(gè)標(biāo)志就用的這個(gè)事件。創(chuàng)建這個(gè)事件要設(shè)置成手動(dòng)的,初始為無(wú)信號(hào)。

            這樣服務(wù)端的就寫(xiě)完了。
            然后再說(shuō)一下客戶(hù)端的函數(shù)
            WaitNamedPipe(_T("\\\\.\\pipe\\chenxiao"),0);
            這個(gè)函數(shù)呢就屬于一個(gè)查看函數(shù),看看有沒(méi)有叫chenxiao的命名管道
            大家不要認(rèn)為這個(gè)函數(shù)可以打開(kāi)命名管道 或者連接管道
            大家從msdn上可以看到這句話If the function succeeds,the process should use the CreateFile function to open a handle to the named pipe
            今天我由于沒(méi)看到這句話苦苦弄了一個(gè)下午也沒(méi)連上管道5555555555
            在客戶(hù)端可以用waitnamedpipe檢查下有沒(méi)有這個(gè)管道 然后再createfile打開(kāi)它。
            哦了 搞定了。搞上我的代碼瞅瞅效果。

             

            //服務(wù)器端的代碼  MFC寫(xiě)的

            void CPipeServerDlg::OnBnClickedButtonCreate()
            {
                m_hNP
            =CreateNamedPipe(_T("\\\\.\\pipe\\chenxiao"),
                    PIPE_ACCESS_DUPLEX
            |FILE_FLAG_OVERLAPPED,
                    PIPE_TYPE_BYTE,
            1,1024,1024,0,NULL);
                
            if (m_hNP==INVALID_HANDLE_VALUE)
                
            {
                    MessageBox(_T(
            "創(chuàng)建管道失敗"));
                }

                
            else
                
            {
                    MessageBox(_T(
            "創(chuàng)建管道成功"));
                }

                
            //連接-----------------------------
                
                OVERLAPPED op;
                ZeroMemory(
            &op,sizeof(OVERLAPPED));
                op.hEvent
            =CreateEvent(NULL,TRUE,FALSE,NULL);
                BOOL b
            =ConnectNamedPipe(m_hNP,&op);
                
            if (WaitForSingleObject(op.hEvent,INFINITE)==0)
                
            {
                    MessageBox(_T(
            "connect成功 haha"));
                }

                
            else
                
            {
                    MessageBox(_T(
            "create fail"));
                }

            }


            void CPipeServerDlg::OnBnClickedButtonWrite()
            {

                TCHAR buff[
            100]=_T("來(lái)自服務(wù)器的信息");
                DWORD d;
                WriteFile(m_hNP,buff,
            200,&d,NULL);
            }


            void CPipeServerDlg::OnBnClickedButtonRead()
            {
                TCHAR buff[
            100];
                ZeroMemory(buff,
            200);
                DWORD d;
                ReadFile(m_hNP,buff,
            200,&d,NULL);
                MessageBox(buff);
            }

             

            //客戶(hù)端的代碼 MFC寫(xiě)的


            void CPipeClientDlg::OnBnClickedButtonOpenpipe()
            {
                BOOL b
            =WaitNamedPipe(_T("\\\\.\\pipe\\chenxiao"),0);
                
            //BOOL b=1;
                m_hFile = CreateFile(_T("\\\\.\\pipe\\chenxiao"), 
                    GENERIC_READ 
            | GENERIC_WRITE,
                    
            0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
                
            if (!b||m_hFile==INVALID_HANDLE_VALUE)
                
            {
                    MessageBox(_T(
            "連接失敗"));
                }

                
            else
                
            {
                    MessageBox(_T(
            "連接成功"));
                }

            }


            void CPipeClientDlg::OnBnClickedButtonRecieve()
            {
                TCHAR buff[
            100];
                ZeroMemory(buff,
            200);
                DWORD d;
                ReadFile(m_hFile,buff,
            200,&d,NULL);
                MessageBox(buff);
            }


            void CPipeClientDlg::OnBnClickedButtonSend()
            {
                TCHAR buff[
            100]=_T("client's message");
                DWORD d;
                WriteFile(m_hFile,buff,
            200,&d,NULL);
            }

            下圖程序運(yùn)行效果圖

            哇卡卡阿卡














             

            posted @ 2011-08-01 22:14 陳曉 閱讀(5415) | 評(píng)論 (6)編輯 收藏

            2011年7月31日 #

            進(jìn)程通信——剪貼板

            由于在啟動(dòng)一個(gè)進(jìn)程后,操作系統(tǒng)會(huì)給這個(gè)進(jìn)程分配 4GB 的私有地址空間,至于為何有 4GB 這么大,

            那得考慮進(jìn)程的私有地址空間和實(shí)際物理內(nèi)存地址空間之間的映射以及頁(yè)交換等等細(xì)節(jié)問(wèn)題了,這里不予討論,

            既然操作系統(tǒng)給每一個(gè)進(jìn)程分配的是私有地址空間,自然,這段地址空間也只有這個(gè)進(jìn)程自己才能訪問(wèn)了,
            既然這段私有地址空間只能由進(jìn)程本身訪問(wèn),那也就說(shuō)明別的進(jìn)程是不能夠隨意的訪問(wèn)這個(gè)進(jìn)程的地址空間的,

            而上面又說(shuō)任意兩個(gè)進(jìn)程之間是并能夠互相訪問(wèn)對(duì)方的私有地址空間的,都不能訪問(wèn)了,那還通信個(gè)屁啊 ?

            自然上面的訪問(wèn)對(duì)方進(jìn)程的私有地址空間是行不通了,那應(yīng)該還有其他辦法的 !!!

            如果我在物理內(nèi)存中劃分出一塊內(nèi)存,這一塊內(nèi)存不為任何的進(jìn)程所私有,但是任何的進(jìn)程又都可以訪問(wèn)這塊內(nèi)存,

            那么 進(jìn)程 A 就可以往這塊內(nèi)存中存放數(shù)據(jù) Data ,然后 進(jìn)程 B 也是可以訪問(wèn)這塊內(nèi)存的,從而 進(jìn)程 B 就可以訪問(wèn)到數(shù)據(jù) Data 了,

            這樣不就實(shí)現(xiàn)了 進(jìn)程 A 進(jìn)程 B 之間的通信了 !!!

            而上面的這種思路就是剪貼板了。

            當(dāng)然解決進(jìn)程間通信還有好幾種思路,本文暫只介紹利用剪貼板來(lái)實(shí)現(xiàn)進(jìn)程間的通信。
            前面
            這段話是我抄過(guò)來(lái)的,呵呵,自己寫(xiě)不了這種書(shū)面語(yǔ)。
            我寫(xiě)一下我對(duì)剪貼板的使用,我也是新學(xué)的,有不對(duì)的地方還請(qǐng)大家指點(diǎn)。

            向剪貼板中寫(xiě)入數(shù)據(jù)
            打開(kāi)剪貼板 OpenClipboard
            清空剪貼板 EmptyClipboard
            設(shè)置剪貼板數(shù)據(jù)SetClipboardData
            關(guān)閉剪貼板CloseClipboard

            從剪貼板讀取數(shù)據(jù)
            打開(kāi)剪貼板 OpenClipboard
            判斷數(shù)據(jù)類(lèi)型IsClipboardFormatAvailable
            得到剪貼板數(shù)據(jù)GetClipboardData
            關(guān)閉剪貼板CloseClipboard

            我在說(shuō)下具體的函數(shù)怎么用
            Openclipboard大家在msdn上可以看到 僅有一個(gè)參數(shù)hWndNewOwner
            這個(gè)參數(shù)表明那個(gè)窗口擁有剪貼板的使用權(quán) 已在此窗口中打開(kāi),別的窗口中調(diào)用openclipboard就會(huì)失敗
            這個(gè)參數(shù)可以設(shè)置成null。If this parameter is NULL, the open clipboard is associated with the current task
            呵呵,這個(gè)設(shè)成null之后 在后邊的 setclipboarddata 就不能采用延遲發(fā)送了。因?yàn)?#8230;…等會(huì)說(shuō)延遲發(fā)送就會(huì)知道了。(這是我試驗(yàn)得出的結(jié)論,應(yīng)該沒(méi)問(wèn)題)
            這個(gè)參數(shù)我們暫且設(shè)為窗口句柄 m_hWnd(我用的MFC編的)
            EmptyClipboard這個(gè)函數(shù)就沒(méi)什么說(shuō)的了。就是清空剪貼板的數(shù)據(jù) 還有就是The function then assigns ownership of the clipboard to the window that currently has the clipboard open.
            SetClipboardData( UINT uFormat, HANDLE hMem);
            有兩個(gè)參數(shù)第一個(gè)參數(shù)是數(shù)據(jù)類(lèi)型 我們?cè)O(shè)置成CF_UNICODETEXT。
            第二個(gè)參數(shù)是the hMem parameter identifies a memory object, the object must have been allocated using the function with the GMEM_MOVEABLE flag.
            這句話得意思就是 hmem是塊內(nèi)存對(duì)象的句柄 這塊內(nèi)存要是GMEM_MOVEABLE 型的。這又要引進(jìn)一個(gè)申請(qǐng)內(nèi)存的函數(shù)。平常我們用的malloc new 等都是
            在自己的進(jìn)程中申請(qǐng)空間,如果用他們 我們的通信也就通不成了。所以我們要申請(qǐng)個(gè)全局的內(nèi)存空間
            GlobalAlloc(GMEM_MOVEABLE,dwBytes);第一個(gè)參數(shù)就是可移動(dòng)的意思(當(dāng)別人申請(qǐng)一塊大空間的時(shí)候 比如我們申請(qǐng)的空間比較散亂占用了一部分空間 別人就申請(qǐng)不了一整塊大的空間了。這樣我們的空間如果是可移動(dòng)的,就會(huì)被移動(dòng)的凝聚一些,別人就有地方申請(qǐng)大的空間了,紅色是我們申請(qǐng)的凌亂的空間,綠色是又想申請(qǐng)的一大塊)。

            這個(gè)我不在這里多講,內(nèi)存管理我懂的也不太多。不懂的可以找找內(nèi)存管理方面的書(shū)。 第二個(gè)參數(shù)就是空間大小。

            這樣我們完成了設(shè)置剪貼板數(shù)據(jù) ,然后我們關(guān)閉剪貼板就行了。
            讀取簡(jiǎn)單一些。
            ::OpenClipboard(m_hWnd)
            IsClipboardFormatAvailable(CF_UNICODETEXT)//判斷剪貼板內(nèi)數(shù)據(jù)類(lèi)型
            HANDLE hClip=::GetClipboardData(CF_UNICODETEXT)//得到剪貼板的句柄
            然后就是使用里面的數(shù)據(jù)了。這里要注意,一定要給數(shù)據(jù)上鎖 ,就是說(shuō)我們?cè)谑褂脭?shù)據(jù)的這個(gè)時(shí)間內(nèi),別人不準(zhǔn)移動(dòng)我們的內(nèi)存。這個(gè)大家能理解吧。
            TCHAR * p=(TCHAR *)GlobalLock(hClip);//強(qiáng)制裝換成我們的寬字符  上鎖
            MessageBox(p);輸出即可
              GlobalUnlock(hClip);  解鎖
              ::CloseClipboard();
            這就完成了,我貼一段代碼上來(lái)哦

            //這個(gè)是寫(xiě)入剪貼板
                if(!::OpenClipboard(m_hWnd))
                
            {
                    MessageBox(_T(
            "打開(kāi)剪切板失敗"));
                }

                ::EmptyClipboard();
                  CString str
            =_T("hahaaha");
                  HGLOBAL  hG
            =GlobalAlloc(GMEM_MOVEABLE,sizeof(_T("hahaaha"))+2);
                  _tcscpy_s((wchar_t 
            *)GlobalLock(hG),sizeof(_T("hahaaha"))/2+1,str);
                  GlobalUnlock(hG);
                ::SetClipboardData(CF_UNICODETEXT,hG);
                ::C
            //這個(gè)是從剪貼板中讀出數(shù)據(jù)
            if(!::OpenClipboard(m_hWnd))
                     
            {
                         MessageBox(_T(
            "打開(kāi)剪切板失敗"));
                        
            return ;
                     }

                    
            if (::IsClipboardFormatAvailable(CF_UNICODETEXT))
                
            {

                    HANDLE hClip
            =::GetClipboardData(CF_UNICODETEXT);
                    TCHAR 
            * p=(TCHAR *)GlobalLock(hClip);
                    MessageBox(p);
                    GlobalUnlock(hClip);
                    ::CloseClipboard();
                }

                
            else
                
            {
                    MessageBox(_T(
            "剪貼板的內(nèi)容不是unicode"));
                }


            然后最后我在說(shuō)說(shuō)延遲發(fā)送setclipboarddata 的第二個(gè)參數(shù)傳為null 就為延遲發(fā)送
            延遲發(fā)送就是一開(kāi)始點(diǎn)寫(xiě)入剪貼板的時(shí)候不寫(xiě)入,然后另一個(gè)進(jìn)程想要得到剪貼板里的信息的時(shí)候也就是在getclipboarddata時(shí)
            系統(tǒng)會(huì)發(fā)個(gè)消息給我們以前的那個(gè)窗口 還記得openclipboard傳的那個(gè)m_hWnd了吧,就是給這個(gè)窗口發(fā)個(gè)消息WM_RENDERFORMAT
            然后你在這個(gè)消息響應(yīng)函數(shù)中進(jìn)行把數(shù)據(jù)寫(xiě)入剪貼板。
            還有一種情況就是你在想粘貼的時(shí)候  你的原先寫(xiě)入的那個(gè)程序已經(jīng)關(guān)閉了,這樣的話你就帖不了了。 這樣 還有一個(gè)消息
            如果你選擇了延遲發(fā)送 然后關(guān)閉應(yīng)用程序的話,就會(huì)響應(yīng)一個(gè)WM_RENDERALLFORMATS消息 那么你在這個(gè)響應(yīng)函數(shù)中把你要寫(xiě)入剪貼板得數(shù)據(jù)
            寫(xiě)入 就可以避免這種情況了。
            啊 累死我了,可下寫(xiě)完了。。。。




            posted @ 2011-07-31 17:11 陳曉 閱讀(2062) | 評(píng)論 (0)編輯 收藏

            快照、用進(jìn)程快照,和模塊快照做個(gè)簡(jiǎn)單的任務(wù)管理器

            得到系統(tǒng)中的進(jìn)程信息
            CreateToolhelp32Snapshot 快照  
            此函數(shù)能得到系統(tǒng)中的所有進(jìn)程 所有模塊 信息等
            然后用Process32First得到快照第一個(gè)節(jié)點(diǎn)信息(快照得到的東西相當(dāng)于鏈表)
            用此可以實(shí)現(xiàn)一個(gè)windows任務(wù)管理器。
            用mFc寫(xiě)的。
            //把ListCtrl的表頭做出來(lái)
            CListCtrl * m_pListCtrl=new CListCtrl;//m_pListCtrl要類(lèi)的全局變量哦 
            m_pListCtrl->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT
            ,CRect(50,50,590,350),this,IDC_LIST1);
            m_pListCtrl->SetExtendedStyle(m_pListCtrl->GetExtendedStyle()|
            LVS_EX_HEADERDRAGDROP|LVS_EX_FULLROWSELECT|
            LVS_EX_TWOCLICKACTIVATE|LVS_EX_UNDERLINECOLD);
            m_pListCtrl->InsertColumn(0,_T("進(jìn)程名"),LVCFMT_LEFT,120);
            m_pListCtrl->InsertColumn(1,_T("進(jìn)程ID"),LVCFMT_LEFT,70);
            m_pListCtrl->InsertColumn(2,_T("線程數(shù)量"),LVCFMT_LEFT,70);
            m_pListCtrl->InsertColumn(3,_T("路徑"),LVCFMT_LEFT,340);

            //讀取所有運(yùn)行中的進(jìn)程 和進(jìn)程名字 加入到 ListCtrl中
               m_pListCtrl->DeleteAllItems();//先清空里面的所有item 一開(kāi)始是沒(méi)有的,但是也要寫(xiě)一下。
            HANDLE hSnapProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//創(chuàng)建進(jìn)程快照
            HANDLE hSnapModule;
            PROCESSENTRY32 pe;
            MODULEENTRY32  me;
            ZeroMemory(&me,sizeof(MODULEENTRY32));
            ZeroMemory(&pe,sizeof(PROCESSENTRY32));
            me.dwSize=sizeof(MODULEENTRY32);
            pe.dwSize=sizeof(PROCESSENTRY32);
            int pos=0;
            Process32First(hSnapProcess,&pe);//從線程快照中讀取第一個(gè)進(jìn)程信息
            CString strTemp;
            do 
            {
            hSnapModule=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pe.th32ProcessID);   //根據(jù)進(jìn)程id創(chuàng)建模塊快照
            m_pListCtrl->InsertItem(pos,_T(""));     //插入一個(gè)item
            Module32First(hSnapModule,&me);        //讀取模塊中的信息  只有一個(gè)模塊。因?yàn)槭歉鶕?jù)具體進(jìn)程創(chuàng)建的模塊快照
            m_pListCtrl->SetItemText(pos,0,pe.szExeFile);   //設(shè)置的進(jìn)程名
            strTemp.Format(_T("%d"),pe.th32ProcessID);
            m_pListCtrl->SetItemText(pos,1,strTemp);   //進(jìn)程id
            strTemp.Format(_T("%d"),pe.cntThreads);
            m_pListCtrl->SetItemText(pos,2,strTemp);    //線程數(shù)
            m_pListCtrl->SetItemText(pos,3,me.szExePath);   //進(jìn)程exe路徑
            } while (Process32Next(hSnapProcess,&pe));//讀下一個(gè)進(jìn)程

            在寫(xiě)個(gè)關(guān)閉進(jìn)程 的按鈕
            void CProcessManagerDlg::OnBnClickedButtonClose()
            {
                
            int iMark=m_pListCtrl->GetSelectionMark();
                
            if(-1!=iMark)
                {
                    CString  str
            =m_pListCtrl->GetItemText(iMark,1);
                    HANDLE hProcess
            =OpenProcess(PROCESS_ALL_ACCESS,FALSE,_wtoi(str));
                    DWORD dExitCode;
                    GetExitCodeProcess(hProcess,
            &dExitCode);
                    TerminateProcess(hProcess,dExitCode);
                    m_pListCtrl
            ->DeleteItem(iMark);
                    str.Format(_T(
            "%d"),--count);
                    GetDlgItem(IDC_STATIC_COUNT)
            ->SetWindowText(str);
                }
                
            else
                {
                    MessageBox(_T(
            "沒(méi)有選中進(jìn)程"));
                }

            }

              嘿嘿,看看這個(gè)圖 還是挺好的。

               



            posted @ 2011-07-31 14:34 陳曉 閱讀(2270) | 評(píng)論 (0)編輯 收藏

            2011年7月30日 #

            多線程、事件event

            就是自己隨便做的筆記,可能對(duì)不起觀眾了。只是記錄了用的函數(shù)。具體使用方法還是看下msdn
            創(chuàng)建CreateThread 參見(jiàn)msdn  要記得closehandle

            mfc 創(chuàng)建線程 afxbeginthread

            創(chuàng)建事件 createevent

            等待函數(shù)WaitForSingleObject   自動(dòng)事件有信號(hào) 經(jīng)過(guò)等待函數(shù)變成無(wú)信號(hào)。

            線程退出,寫(xiě)在timer中 隔一段時(shí)間一檢測(cè)。可以用多等待 WaitForMultipleObjects返回WAIT_OBJECT_0時(shí)則為所有事件都為有信號(hào)狀態(tài)。


            線程同步 

            臨界區(qū)法

            定義臨界區(qū)CRITICAL_SECTION m_critical;

            InitializeCriticalSection(&m_critical) 初始化臨界區(qū)

            EnterCriticalSection(&(p->m_critical));進(jìn)入

            LeaveCriticalSection(&(p->m_critical));離開(kāi)

            DeleteCriticalSection(&m_critical)釋放

            事件法

            定義自動(dòng)變換事件m_hEvent

            WaitForSingleObject(m_hEvent,INFINITE);

            //被保護(hù)的代碼

            SetEvent(p->m_hEvent);

            互斥對(duì)象法

            穿件互斥對(duì)象 createmutex

            等待函數(shù)WaitForSingleObject

            //被保護(hù)的代碼

            釋放互斥對(duì)象使用權(quán)ReleaseMutex

            信號(hào)量  semaphore內(nèi)核對(duì)象
            CreateSemaphore(安全性,初始話信號(hào)量,最大信號(hào)量,name)
            經(jīng)過(guò)wait函數(shù)信號(hào)量減少
            releaseSemaphore(句柄,信號(hào)增加量,【out】前個(gè)信號(hào)量)

             

             

            利用事件判斷應(yīng)用程序不能運(yùn)用兩個(gè)
            createevent的最后一個(gè)參數(shù)name 寫(xiě)一個(gè)“唯一的”
            然后再創(chuàng)建的這個(gè)時(shí)間 用“唯一的”這個(gè)名字  就會(huì)出錯(cuò)
            用getlasterror 能得到ERROR_ALREADY_EXISTS  
            整個(gè)過(guò)程應(yīng)該在app 的init中進(jìn)行

            posted @ 2011-07-30 14:32 陳曉 閱讀(699) | 評(píng)論 (0)編輯 收藏

            總結(jié)的幾個(gè)排序算法

            快速排序:
            思想 一個(gè)標(biāo)記數(shù)(取數(shù)組最后一個(gè)數(shù))  左邊放比他小的所有數(shù) 右邊放比它都大的數(shù)
            這樣分成的兩個(gè)數(shù)組 在進(jìn)行 尾部一個(gè)數(shù)作為標(biāo)記數(shù)作為標(biāo)記分割數(shù)組
            一直到分不了為止  自然就排好了續(xù)   用具體數(shù)字分析一下
            一個(gè)數(shù)組char data[9]={2,5,8,3,7,6,1,9,4};
            分開(kāi)這個(gè)數(shù)組 看好了怎么把比4小的數(shù)都放到它前邊
             int biaoji=data[8];//最后一個(gè)數(shù)
             int weizhi=data[j];//這個(gè)一個(gè)位置數(shù) 一開(kāi)始把它放在最前邊 j會(huì)++
             data[i];//這個(gè)是用來(lái)遍歷數(shù)組的。i會(huì)++
            for(int i=0;i<8;i++)//因?yàn)樽詈笠粋€(gè)數(shù)是標(biāo)記 所以只要對(duì)前8個(gè)數(shù)進(jìn)行遍歷就行
            {
             if(data[i]<biaoji)
             {
               交換data[i]和weizhi
               位置的j++ 位置向后走一位(這個(gè)位置就意味著比標(biāo)記小的數(shù)都放到位置的左邊邊) 
             }
            }
            在分開(kāi)之后 我們要把我們的標(biāo)記(也就是最后一個(gè)數(shù))和我們的位置數(shù) 換一下
            這樣就做到了這樣的事 把{2,5,8,3,7,6,1,9,4} 換成了{(lán)2,3,1,4,7,6,8,9}
            好了 上代碼 在看看代碼相信 就都會(huì)了。
            這是我用c++實(shí)現(xiàn)的代碼 哈哈寫(xiě)完了感覺(jué)很爽!

            #include <iostream>
            using namespace std;
            //得到分割點(diǎn) 把小于最后一個(gè)數(shù)的數(shù)放在i前邊
            //iData 是數(shù)組{2,5,8,3,7,6,1,9,4} iBegin是開(kāi)始的索引0  iEnd是結(jié)束的索引8
            int getCutpoint(int * iData,int iBegin,int iEnd)
            {
              int iCut=iData[iEnd];
              int i=iBegin;
             int temp;
              for(int j=iBegin;j<iEnd;j++)
              {
               //如果前面的比最后一個(gè)iCut小的話,那么讓
               //iData[i]和iData[j]換
               if (iData[j]<=iCut)
               {
                temp=iData[i];
                iData[i]=iData[j];
                iData[j]=temp; 
                i++;
              }
              }
              //交換最后一個(gè)與i處也就是cut處
              iData[iEnd]=iData[i];
              iData[i]=iCut;
             return i;//返回分割的索引
            }
            void fastSortCallBack(int * iData,int iBegin,int iEnd)
            {
             if (iBegin>=iEnd)
             {
              return;
             }
             int i=getCutpoint(iData,iBegin,iEnd);
             //回調(diào)繼續(xù)getcutpoint左部分
             fastSortCallBack(iData,iBegin,i-1);
             //回調(diào)繼續(xù)getcutpoint右部分
             fastSortCallBack(iData,i+1,iEnd);
             return ;
            }
            void fastSort(int * iData,int iLength)
            {
             fastSortCallBack(iData,0,iLength-1);
            }
            int main()
            {
             int d[9]={2,5,8,3,7,6,1,9,4};
             fastSort(d,9);
             for (int i=0;i<9;i++)
             {
              cout<<d[i]<<" ";
             }
             system("pause");
             return 0;
            }

             


            選擇排序:
            選擇排序和冒泡排序思路上有一點(diǎn)相似,都是先確定最小元素,再確定第二笑元素,最后確定最大元素。這個(gè)方法比較簡(jiǎn)單,他的主要流程如下:
            1.加入一個(gè)數(shù)組A = {5,3,6,2,4,7},我們對(duì)他進(jìn)行排序
            2.確定最小的元素放在A[0]位置,我們?cè)趺创_定呢,首先默認(rèn)最小元素為5,他的索引為0,然后用它跟3比較,比他打,則認(rèn)為最小元素為3,他的索引為1,然后用3跟6比,發(fā)現(xiàn)比他小,最小元素還是3,然后跟2比,最小元素變成了2,索引為3,然后跟4比,跟7比。當(dāng)比較結(jié)束之后,最小元素也塵埃落定了。就是2,索引為3,然后我們把他放在A[0]處。為了使A[0]原有數(shù)據(jù)部丟失,我們使A[0](要放的位置) 與A[3](最小數(shù)據(jù)的位置)交換。這樣就不可以了嗎?
            3.然后我們?cè)趤?lái)找第二小元素,放在A[1],第三小元素,放在A[2]。。當(dāng)尋找完畢,我們排序也就結(jié)束了。
            4.不過(guò),在找的時(shí)候要注意其實(shí)位置,不能在找A[2]的時(shí)候,還用A[2]的數(shù)據(jù)跟已經(jīng)排好的A[0],A[1]比,一定要跟還沒(méi)有確定位置的元素比。還有一個(gè)技巧就是我們不能每次都存元素值和索引,我們只存索引就可以了,通過(guò)索引就能找到元素了。呵呵。
            5.他和冒泡的相似和區(qū)別,冒泡和他最大的區(qū)別是他發(fā)現(xiàn)比他小就交換,把小的放上面,而選擇是選擇到最小的在直接放在確定的位置。選擇也是穩(wěn)定的排序  ,這個(gè)還是很好實(shí)現(xiàn)的。

            void SelectSort(int* pnData, int nLen)
            {
                //i從[0,nLen-1)開(kāi)始選擇,確定第i個(gè)元素
                for (int i = 0; i < nLen - 1; ++i)
                {
                    int nIndex = i;
                    //遍歷剩余數(shù)據(jù),選擇出當(dāng)前最小的數(shù)據(jù)
                    for (int j = i + 1; j < nLen; ++j)
                    {
                        if (pnData[j] < pnData[nIndex])   
                        {
                            nIndex = j;
                        }
                    }
                    //如果當(dāng)前最小數(shù)據(jù)索引不是i,也就是說(shuō)排在i位置的數(shù)據(jù)在nIndex處
                    if (nIndex != i)       
                    {
                        //交換數(shù)據(jù),確定i位置的數(shù)據(jù)。
                        int nTemp = pnData[i];
                        pnData[i] = pnData[nIndex];
                        pnData[nIndex] = nTemp;
                    }
                }
            }

             


            插入排序:
            思想,從第二個(gè)元素開(kāi)始向后遍歷,然后跟前面比較,如果比前邊的元素小則向前插入
            由data[1]和data[0]比較 如果data[1]<data[0]則data[0]后移一位 然后data[1]插入到data[0]位置
            當(dāng)然了,在data[0]后移的時(shí)候要用temp 記錄data[1]的值
            這樣繼續(xù)下去……
            if(data[i]<(data i 前邊的元素))
            {
              data i 前邊的元素就后移
            }
            最后把data[i]放到該插入的地方去 下面獻(xiàn)上一點(diǎn)點(diǎn)代碼 其中主要不好弄的是在頭部
            比如{3,4,5,6,2,1} 這個(gè)2 和 1 向前插入的話2 比第一個(gè)數(shù)3還要小 所以他下一步就要去
            和索引為-1的數(shù)比較,這是不允許的。所以……如下
            void insertSort(int * pData,int iLength)
            {
             //從第二個(gè)元素開(kāi)始 向前插
             int temp=pData[1];
             for (int i=1;i<iLength;)
             {
              for (int j=i-1;j>=0;j--)
              {
               //如果temp比前邊的大,則前邊的后移 最后把temp放在前面
               if (temp<pData[j])
               {
                pData[j+1]=pData[j];
                 if (j==0)
                 {
                  pData[0]=temp;
                 } 
               }
                else
                {
                 pData[j+1]=temp;
                 break;
                }
               
              }
              
              temp=pData[++i];
             }
            }

             

             

            希爾排序

            待學(xué)習(xí)。

             


            堆排序!!!!!!!!!!

             還不會(huì)呢。。

             

            冒泡排序  略……

            posted @ 2011-07-30 14:29 陳曉 閱讀(309) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題  
            久久亚洲AV无码精品色午夜 | 久久综合九色综合精品| 精品久久久久中文字| 久久91综合国产91久久精品| 久久九九久精品国产免费直播| 久久精品18| 色诱久久久久综合网ywww| 久久99久久99精品免视看动漫| 亚洲AV无码久久精品成人| 久久久久人妻精品一区二区三区| 99精品国产99久久久久久97 | 香蕉久久夜色精品国产2020| 精品国产乱码久久久久软件| 新狼窝色AV性久久久久久| 国内精品久久久久久不卡影院| 国内精品久久久久久久亚洲 | 国产精品久久久久影视不卡| 91精品国产色综久久| 无码精品久久久久久人妻中字| 久久99精品久久久久久秒播| 久久99国内精品自在现线| 欧美日韩精品久久免费| 久久久久亚洲AV无码专区桃色| 久久久久亚洲AV成人片| 亚洲国产精品无码久久久蜜芽| 国产精品乱码久久久久久软件 | 精品久久久久久久久久中文字幕| 2021少妇久久久久久久久久| 亚洲愉拍99热成人精品热久久| 午夜天堂精品久久久久| 欧美亚洲国产精品久久高清| 国产亚洲精品自在久久| 亚洲中文字幕无码久久2020 | 亚洲精品成人网久久久久久| 日本国产精品久久| 欧美喷潮久久久XXXXx| 久久久久久亚洲Av无码精品专口| 一本久久a久久精品vr综合| 人妻少妇久久中文字幕| 久久一区二区免费播放| 国内精品久久人妻互换|