青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

記錄一些學(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í)了廣東人的摳門,就打算再也不去碰這一鼻子灰了。 
那天,我出來(lái)倒垃圾,經(jīng)過(guò)儲(chǔ)藏室的門,聽(tīng)到里面窸窸嗦嗦的,氣就不打一處來(lái),我知道肯定是老鼠又在里面大**了。我狠狠地一腳踹在門上,還不解氣,就又猛踹一腳。 
門吱嘎的開(kāi)了,我嚇了一跳。我以為我把門踹壞了;正忐忑不安的時(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ò)你。 
周圍的空氣戛然的停在那里,有些尷尬。我趕忙說(shuō)著:不好意思,不好意思,打擾你們了。便迅速的溜回自己的房門。我聽(tīng)到了他們輕輕關(guān)房門的聲音,還聽(tīng)到了他們竊竊私語(yǔ)的聲音,好像在說(shuō):是不是我們平時(shí)動(dòng)靜太大,吵到鄰居了?那以后我們要多注意了!之類的話。 
我喝了口水,平靜下來(lái),我才確信,那個(gè)一天到晚黑洞洞的儲(chǔ)藏室里真的住著倆人,這倆人也許就是房東說(shuō)的那對(duì)民工夫婦。 
我突然冷笑了一下,還夫婦呢,一看也就20來(lái)歲的樣子,私奔出來(lái)的?還是新婚小夫妻?不自覺(jué)的笑了笑,自我解嘲的想:民工么, 農(nóng)村出來(lái)的,結(jié)婚普遍早。那看來(lái)以后得稱呼,那男人,那女人了。這樣想著,還抑制不住的笑出了聲。 
第一次跟這對(duì)小夫妻接觸是因?yàn)槲彝浟藥ц€匙,進(jìn)不了門,便找他們借工具,想把門撬開(kāi)。 
那是我第一次真正的去敲那個(gè)門,也是第一次去光顧那個(gè)陰暗的儲(chǔ)藏室。 
門開(kāi)了,他們夫妻看到我似乎很驚喜,趕忙的讓我進(jìn)屋。我說(shuō)明來(lái)意,他們夫妻就轉(zhuǎn)身找家伙去了。門開(kāi)著,里面黑乎乎的,我忍不住往里邁了一步。不知道腳被什么絆了一下,我以為是有老鼠,嚇得“哎喲”大叫。他們中的一個(gè),立馬打開(kāi)了燈。天花板上的那盞小燈散發(fā)著昏黃的光,我敢肯定那燈泡不會(huì)超過(guò)10瓦。我很懷疑他們能從哪里買到這樣的燈泡,在這樣一個(gè)南方大都市我實(shí)在想象不出來(lái)哪里會(huì)有賣這樣的燈泡的。我猜想也許那是他們從老家?guī)?lái)的也說(shuō)不定。 
我打量著這個(gè)我曾經(jīng)很想把雜物放進(jìn)來(lái)的儲(chǔ)藏室。我以最奢侈的估算,房間不會(huì)超過(guò)10個(gè)平方。四周沒(méi)有任何一個(gè)窗戶,門是唯一可以通風(fēng)和出入的地方。房間里散發(fā)著一種潮濕的霉味,鉆進(jìn)嗓子眼,讓人感覺(jué)惡心。我忍不住一個(gè)箭步退了出來(lái)。 
可是我卻清楚的看到,房間里除了一張單人木板床和零落在地上的鍋碗瓢盤,真的沒(méi)有任何插腳的地方,我真佩服那對(duì)小夫妻是怎么呆在里面生活的。 
最后,夫妻倆找到他們做飯的刀,也是唯一一個(gè)有可能打開(kāi)我房門的工具,費(fèi)了九牛二虎之力幫我弄開(kāi)了門。 
門開(kāi)了,我并沒(méi)有任何要他們進(jìn)來(lái)的意思。他們站在門口,把著門框。踮著腳尖,一副靦腆的樣子,打量著我這個(gè)兩室一廳的房子。女人終于說(shuō)了一句話:怎么從來(lái)沒(méi)看見(jiàn)過(guò)您先生?。课艺樥f(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è)的?讀的什么專業(yè)啊? 
他們抿了抿嘴,有點(diǎn)不好意思,我以為這下可揭穿你們了,真虛偽! 
突然男的開(kāi)口了:我們讀的學(xué)校不好,也就是個(gè)三流大學(xué),我跟我老婆是一個(gè)大學(xué)的又是同鄉(xiāng),她讀文科,我讀理科?,F(xiàn)在我做業(yè)務(wù)員,她在餐館當(dāng)服務(wù)員。 
我撇了撇嘴,“哦”了一聲。 
“我是**大學(xué)研究生畢業(yè)”在我說(shuō)完這句話的時(shí)候,我才發(fā)現(xià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è)著,他們拿刀給我撬門技術(shù)這么好會(huì)不會(huì)哪天趁我不在也會(huì)這樣熟練的順手?可是總還是覺(jué)得別人幫了忙過(guò)意不去,就買了幾斤南方的水果給他們拎了過(guò)去。 
他們似乎受寵若驚,說(shuō)什么也不要。我就告訴他們這是廣州這邊的規(guī)矩,找人幫了忙,一定要表示的,不收就是不給我面子。他們才誠(chéng)惶誠(chéng)恐的收下了。 
沒(méi)過(guò)一會(huì),他們又來(lái)敲我的門。我以為是他們是把水果又送回來(lái)的,結(jié)果開(kāi)門后的第一句話就說(shuō):請(qǐng)問(wèn),這水果最多能放多久?我詫異的望著他們,心里有點(diǎn)氣,心想:難道他們以為我給他們買的水果過(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ǔ)藏室的門,我改變了主意,想著丟了也怪可惜的,他們那么可憐,倒不如給他們過(guò)節(jié)的好。 
看著門虛掩著,我沒(méi)敲,就徑直推開(kāi)了,那盞昏黃的燈亮著,兩個(gè)人蹲在地上,男的正在小心翼翼的切一個(gè)小小的月餅,正準(zhǔn)備把一塊稍大點(diǎn)的給老婆吃,看到我站在門口,不知所措的說(shuō)不出話來(lái)。女的正低頭啃著明顯已經(jīng)有點(diǎn)壞了的水果,吃的津津有味,我看到她沒(méi)有削皮,番石榴和火龍果都是帶著皮吃的。 
男人呆了五秒,趕緊要把那塊稍微大點(diǎn)的月餅讓給我吃,我說(shuō)我不吃月餅的,然后說(shuō)明了來(lái)意。把那盒月餅放在門口就準(zhǔn)備離去。女人叫住了我:大姐,我都不知道說(shuō)什么好了,你看,我們吃的水果也是您給的,您又給我們送月餅來(lái),我都不知道該怎么報(bào)答您了,本來(lái)今天老公公司給他發(fā)了一個(gè)月餅,我們商量著給您送去的,可是一個(gè)拿不出手,就沒(méi)好意思,我們也沒(méi)什么稀罕物,你有啥事要幫忙的,一定吱應(yīng)一聲?。?nbsp;
我這才知道,那一個(gè)月餅是她老公發(fā)的,我也這才知道,她啃的水果是一個(gè)月前我送給他們的。我本來(lái)想說(shuō):吃火龍果要扒皮??墒俏胰塘巳?,沒(méi)有說(shuō)出來(lái)。 
周末,隔壁的女人來(lái)敲門,問(wèn)我有什么事是他們幫得上忙的,我笑著說(shuō)沒(méi)有。她眼尖,看到我沙發(fā)上放著一大堆臟衣服,非要幫我洗,我說(shuō)有洗衣機(jī),一會(huì)丟進(jìn)去就是了,不費(fèi)事的。她尷尬的站在那里,像是很對(duì)不起的樣子,不知道該做什么好。 
我第一次,很熱情的邀請(qǐng)她進(jìn)門,坐一會(huì)。她脫了鞋,光著腳丫子,進(jì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)錢交學(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)打工賺錢,攢夠了錢好回去贖回畢業(yè)證。 
他們租著這個(gè)城市最廉價(jià)的房子,吃著這個(gè)城市最廉價(jià)的飯菜,過(guò)著這個(gè)城市最貧困的生活,可是一年到頭下來(lái)卻還攢不到1萬(wàn)塊錢。這樣下去,要還完兩人的貸款還要8年。 
我不知道8年對(duì)一個(gè)人的青春意味著什么,也不知道8年后是不是還能有機(jī)會(huì)有權(quán)利買回他們的畢業(yè)證??墒俏抑?年的這樣的生活,不是隨便哪一個(gè)人能撐得住的! 
那天,我回來(lái)的時(shí)候,有點(diǎn)晚,樓道里的燈已經(jīng)都開(kāi)始亮著了,經(jīng)過(guò)隔壁門口的時(shí)候,看到他們門開(kāi)著,屋里照樣還是黑黢黢的,男的蹲在門口大口大口的扒著面條,吃的很香。我問(wèn)了一句:燈壞了?他先是遲疑了一下,然后憨憨的笑了:沒(méi)呢,省電,反正樓道里的燈亮著,開(kāi)著門,屋里也挺亮堂的。我笑了。我這才知道,怪不得他們屋里天天都不開(kāi)燈。 
那晚他們的門一直敞開(kāi)著到很晚。我在客廳里能隱隱約約的聽(tīng)到他們的談話。 
他們先是談了會(huì),這個(gè)月又多花了多少錢,什么肥皂用的太快了,水太浪費(fèi)了,上次過(guò)生日不該買那2斤肉的,以后洗菜的水可以洗臉,洗臉的水可以洗澡洗腳,洗腳的水可以洗襪子,洗襪子的水可以沖廁所等等之類的話。 
他們一邊自責(zé)著自己花錢太多,一邊卻又忍不住憧憬著美好的未來(lái)。 
他們想象著,不久的將來(lái),也許還完了錢,就可以要個(gè)孩子,也許將來(lá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)錢讀個(gè)屁書(shū),自作自受! 
可是我也不得不承認(rèn),一個(gè)山里的孩子,是不能僅僅憑著聰明才智就能高攀的起名牌大學(xué)的門檻的;那需要能力,實(shí)力。實(shí)力有時(shí)候除了良好的教育,優(yōu)秀的老師,還有很多很多,比如金錢堆砌的補(bǔ)習(xí)班,比如只有城里孩子才能享受的到的全方位的教育,又比如有有權(quán)有勢(shì)的父母。 
他們沒(méi)有,他們是農(nóng)村的孩子,他們沒(méi)資格和權(quán)利有,沒(méi)人給他們買各種輔導(dǎo)資料,也沒(méi)有全國(guó)的優(yōu)秀教師給他們手把手的教,他們沒(méi)見(jiàn)過(guò)鋼琴,沒(méi)見(jiàn)過(guò)電腦,他們甚至除了村支書(shū),不認(rèn)識(shí)任何一個(gè)可以稱得上干部的領(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)ゲ蝗?。?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)的??墒茄巯挛矣终也坏胶线m的房子搬,只能暫且戰(zhàn)斗在最前線了。 
整棟樓有十幾個(gè)房東,他們是天天圍著麻將桌懶得輪流值班的,反正偷的也不是他們家的東西。最后在我們幾個(gè)房客的據(jù)理力爭(zhēng)下,好歹請(qǐng)了一個(gè)保安。 
我下班回來(lái),看到樓下吵吵嚷嚷的,原來(lái)是保安抓住了個(gè)嫌疑犯。我好奇的瞥了一眼,這人不是別人,就是住在我隔壁的那個(gè)看上去有些猥瑣的男人。他低著頭,拼命的解釋:自己不是小偷,自己是住在這里的。 
可是沒(méi)有人相信他,因?yàn)楫?dāng)保安問(wèn)他住幾樓,哪個(gè)房間時(shí),他只說(shuō)了6樓,卻說(shuō)不出房門號(hào)。因?yàn)閮?chǔ)藏室是沒(méi)門牌號(hào)碼的! 
他像個(gè)嚇壞了的孩子,眼睛驚恐的掃視著周圍的每個(gè)人,聽(tīng)著嘰里呱啦的客家話,他無(wú)力的解釋像一個(gè)人最后的死命掙扎。 
我本能的走過(guò)去,他看到了我,眼睛里充滿了希望,含著淚珠的眸子閃過(guò)某種感激。我抬了抬我那總是直視遠(yuǎn)方的眼睛,發(fā)現(xiàn)周圍的人都盯著我。 
我遲疑了,立刻停住了自己那8公分的高跟鞋。我輕輕理了理自己的粉色洋裝,臉上滑過(guò)讓人不易察覺(jué)的一絲驚慌和害怕。我想扭頭沖向樓梯,當(dāng)作什么都沒(méi)發(fā)生過(guò)??墒俏以趺匆蔡Р粍?dòng)我的雙腿,我僵持在哪里半秒鐘。 
我盡量的壓低嗓門,很禮貌矜持的說(shuō):你怎么沒(méi)帶大門的鑰匙?是不是又丟了,真讓人煩! 
保安放開(kāi)了他,我微笑著說(shuō):他是我的遠(yuǎn)房親戚。不好意思,給你添麻煩了。 
我扭頭,踩著我那尖尖的高跟鞋上樓了,樓道里留下一串“嗒嗒”的響聲。 
他老婆回來(lái)的時(shí)候,一直隔著門,站在我門口不停的說(shuō)著:謝謝。我沒(méi)吱聲。過(guò)了不久,似乎她已經(jīng)走了的時(shí)候,我打開(kāi)門,看到他們卻還站在門口,捧著一大把花生和紅棗。 
我盯著他們,沒(méi)開(kāi)門,他們也沒(méi)敢說(shuō)這是給我。只是一個(gè)勁的解釋:下午那會(huì),他老公是想在樓下?lián)鞄讉€(gè)礦泉水瓶子呢;要早知道不讓撿,他說(shuō)啥也不去了。 
我本想打斷她的講話,告訴他們:不是不讓撿,是你們長(zhǎng)的不像住在這棟樓里的人??墒俏疫€是忍住了,繼續(xù)聽(tīng)他們說(shuō)。 
他們始終低著頭,輕聲慢語(yǔ)的,說(shuō):他們也知道這里的規(guī)矩,人家?guī)土嗣δ?,一定要感謝的,可是他們沒(méi)什么能拿的出手的東西,這是他們老鄉(xiāng)回家給他們捎來(lái)的家里的特產(chǎn),都是自家種的,沒(méi)用過(guò)化肥, 讓我放心吃。
我還是開(kāi)了門,拿了張紙,讓他們把那把禮物放在了一張潔白的A6紙上。 
那把花生和棗我沒(méi)有吃,我就放在那里,看著。他們都光溜溜的,泛著光,很心想的樣子,一般大小的個(gè)頭。很飽滿。 
房東終于找上門了,開(kāi)門見(jiàn)山的第一句話就是:是不是你家新住進(jìn)一個(gè)人?我愣了好大一會(huì),才想起來(lái),可能是保安跟他說(shuō)了。 
我把事情的來(lái)龍去脈解釋了一下,并試圖說(shuō)服房東給隔壁的門也掛個(gè)號(hào),房東不情愿的“嗯呢”了幾聲,便走了。 
第二天,我真的看到他們的門上貼了張紙,寫(xiě)著:清潔工具存放處。 
沒(méi)過(guò)幾天,我大學(xué)里的死party兼室友和她新結(jié)識(shí)的男友來(lái)廣州找樂(lè),我被迫請(qǐng)了一天假,陪他們。 
隨便找了個(gè)館子想請(qǐng)他們吃粵菜,可是朋友說(shuō)粵菜沒(méi)味,沒(méi)吃幾下,就嚷著走,后來(lái)還是不得不去了湘菜館子,才算滿足他們的胃口。吃完飯,沒(méi)事,街上是不敢拎著包包閑逛的,就去了“錢柜”K歌,唱到一半,結(jié)果又使性子,非要去“朝歌”。弄來(lái)弄去,歌沒(méi)唱好,還耽誤了時(shí)間。 
晚上回來(lái)的時(shí)候,已經(jīng)有些晚了??墒俏铱吹礁舯诘臒暨€亮著,屋里還嚶嚶的傳來(lái)抽泣的聲音。 
我沒(méi)理會(huì)那聲音,開(kāi)了門,把朋友讓了進(jìn)去。朋友進(jìn)門就開(kāi)了電腦,把那首《不怕不怕》開(kāi)的聲音老大,震的整個(gè)房子都晃悠。 
樓下的終于忍不住了。來(lái)敲門,讓我們動(dòng)靜小點(diǎn)。我關(guān)了音樂(lè),跟朋友談起了隔壁的那對(duì)小夫妻。朋友以為我在講故事,一邊說(shuō)著無(wú)聊,一邊就摸過(guò)煙開(kāi)始吸。我最討厭煙味,因?yàn)槟悄軉艹鲅蹨I。 
我趕朋友出門,讓她在樓道里吸夠了再回來(lái)。 
半支煙工夫,朋友死命的敲門,興奮的叫著她男朋友的名字,說(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)他們倆是去隔壁門口聽(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)門很大聲,估計(jì)開(kāi)開(kāi)關(guān)關(guā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),我真不該笑!
有這么幾天,那扇門一直關(guān)的緊緊的,屋里也一直沒(méi)亮過(guò)燈,我扒在門縫里瞅,竟然不能看到里面的任何東西。有幾次,我甚至使勁貼著耳朵聽(tīng),竟然也絲毫沒(méi)聽(tīng)到任何動(dòng)靜。我開(kāi)始害怕,擔(dān)心他們不聲不響的搬走了。 
我甚至開(kāi)始抱怨,為什么走的時(shí)候沒(méi)打聲招呼。我不知所措,在房間里踱來(lái)踱去,狠命的撕扯著那個(gè)抱枕,用力敲打著鍵盤,寫(xiě)著一些很尖刻的文字,用蔑視的眼光看著周遭的一切。 
我發(fā)現(xiàn)我有好久沒(méi)這么情緒激動(dòng)過(guò)了,甚至應(yīng)該說(shuō)我有很多年沒(méi)這么情緒化了。我突然傷感起來(lái)。似乎失去了什么珍貴的東西,似乎別人偷走了原本屬于我的一份心情。我開(kāi)始詛咒,開(kāi)始謾罵,開(kāi)始憎恨這個(gè)世界。 
我每天站在門口,期望著能突然有人站在我面前笑,我總是忍不住去瞄那扇門,希望能看到里面透出一絲淡淡的泛著黃暈的光??墒且贿B好幾天,都沒(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ò)那扇門的時(shí)候,我有點(diǎn)高興,因?yàn)槲宜坪蹩吹嚼锩驽佂肫氨P碰撞的聲音,因?yàn)樗坪跷夷苈?tīng)到他們的竊竊私語(yǔ)。 
那天,我睡的很早,我其實(shí)一點(diǎn)也不困??墒俏疫€是早早的躺在了床上,我睜大了眼睛,看著天花板,想著有一次能有人敲我的門。 
一陣開(kāi)門的聲音驚動(dòng)了我,盡管那聲音小的還沒(méi)蚊子“嗡嗡”聲大,可是近幾天我練就了一雙聰慧的耳朵。我唰的從床上爬起來(lái),沖了出去。 
那女人看著我當(dāng)啷的一聲開(kāi)門聲,嚇得站在哪里不動(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)了門,打開(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éi)有敲門,也沒(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)了門,走了出去,看著她,等她第一個(gè)開(kāi)口。 
她聽(tīng)到門響,忽的抬起頭,眼睛里有點(diǎn)驚慌,有點(diǎn)不好意思的欣喜。她笑了笑,我明顯的看到她的眼睛紅紅的,腫了,有哭過(guò)的痕跡。 
她微微點(diǎn)了下頭:對(duì)不起大姐,平時(shí)你挺照顧我們的,昨天我心里難受,對(duì)你態(tài)度不大好,你別在意。我還有事,要趕著出門,沒(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)銷醫(yī)藥費(fèi),可是單位不僅不管,還把他開(kāi)除了。積蓄都花光了,她只好回來(lái)收拾收拾,然后去把老公接回來(lái)養(yǎng)傷。 
我拿出了張銀行卡,想給她取點(diǎ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)了他們家的門,女的不在家,上班去了,男的顫巍巍的站在門口,望著我傻乎乎的笑著,不知道該怎么把我讓進(jìn)門。 
我并沒(méi)有要進(jì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)紙上那些民工年年討要工錢反被打,干了活拖欠工資,受了工傷沒(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ū),父母也年邁了,身體又不好,不賺錢,怎么供弟妹?怎么養(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é)的,全家都要遭殃,跟著砸鍋賣鐵的供著??墒乾F(xiàn)在大學(xué)生畢業(yè)工作很難找,尤其是讀的學(xué)校不好,專業(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)槟械挠袀谏?,需要營(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)的工作,雖然賺錢不多,可是畢竟比先前的要好些。他們夫妻倆帶著滿懷的感激不知道說(shuō)了多少遍:謝謝。盡管我一再說(shuō)這是舉手之勞,可是他們還是不停的說(shuō)謝謝。弄的我都有些慚愧了。 
一個(gè)月后,男人和女人興高采烈的跑來(lái)拽著我往外走,我還沒(méi)弄清怎么回事,他們就把我拖出了門外。直到樓下,我才搞明白,原來(lái)男人發(fā)工資了,非要請(qǐng)我吃飯。我呵呵的笑著,說(shuō):不用客氣了,都是出門在外,互相照應(yīng)是應(yīng)該的,吃飯就免了吧??墒撬麄児虉?zhí)的拉住我,非請(qǐng)不可,說(shuō):不請(qǐng),于情于理都說(shuō)不過(guò)去??粗乙惨桓眻?jiān)決不去的樣子,他們倆急了:你是不是怕我們帶的錢不夠,不看,我?guī)Я撕脦装倌?。說(shuō)著就要去掏錢。看著他們憨厚可愛(ài)的樣子,我實(shí)在推辭不過(guò),只好答應(yīng)了。 
我一邊走著,一邊想著:怎么樣才能既讓他們請(qǐng)了我,了卻了他們的心愿,又能為他們省錢。我想起了廣州最便宜的飯館,拉面館。 
于是我裝作沉思良久的樣子說(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)傷口的事,我知道他是為了省錢,可是他不會(huì)虧待朋友,于是只能虧待自己。 
看著他大口的吃著面,看著他老婆不停的把牛肉夾到他碗里,看著夫妻兩人你不停的你把肉夾給我,我把肉夾給你;我的嗓子哽在那里,難受的咽不下去一口面。我能感覺(jué)到我的眼前一片模糊,不知道是面的熱氣撲在了臉上,還是有別的東西糊住了眼睛,能感受的只有一陣潮濕。 
第一次,我學(xué)著他們的樣子,吃光了碗里的面,喝光了碗里的湯,盡管我撐的胃疼??墒俏业谝淮文芨杏X(jué)到我內(nèi)心深處很充實(shí),很滿足。 
雖然吃的是8塊錢一碗的拉面,但是我知道這一餐很貴。那不僅僅是花去了他們好幾天的生活費(fèi);讓我得到的更不僅僅是飽飽的胃,而是我從未有過(guò)的感激和體會(huì)。這無(wú)論是多少錢都不能買得到的,也不是所有人都能得到的恩惠;那種價(jià)值只有人性中才有。 
我想,這是我至今為止吃過(guò)的最貴的一頓飯,它真的很奢侈,很昂貴。 
一個(gè)懶洋洋的午后,我的那個(gè)朋友給我打電話來(lái),當(dāng)我聽(tīng)完他的敘述,我嚇呆了,我不知道他說(shuō)的是不是真的,也沒(méi)聽(tīng)清楚事情到底怎么回事,我只知道,我隔壁的那個(gè)男的被抓進(jìn)了公共安全專家局。 
朋友不停的埋怨我,怎么會(huì)給這樣的人介紹工作,言語(yǔ)間的不滿,無(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éi)人來(lái)開(kāi)門。我有點(diǎn)失落,我想也許女的已經(jīng)趕去公共安全專家局了。 
我無(wú)力的靠在那里,望著隔壁我的門,突然傷感起來(lái)。我看到了我門框上貼著一張紙條,我跑過(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è)客戶送資料,在公共汽車站等車的時(shí)候,正巧遇到“飛車party”搶劫正在等車的一個(gè)婦女的包。婦女拼命拉住自己的包哭喊,卻沒(méi)有一個(gè)人去管,正在雙方你爭(zhēng)我?jiàn)Z,僵持不下的時(shí)候,他看到了,想都沒(méi)想,就沖過(guò)去,幫婦女奪包。無(wú)論賊人怎么打他,甚至拿出了刀子,可是他還是拉住包不放手,這時(shí)候執(zhí)勤**趕來(lái),“飛車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è)男的是“飛車party”同伙,還是另一伙搶劫犯,反正跑上來(lái)就奪她的包。**二話不說(shuō),就帶走了男人。 
由于男人著急給客戶送資料,所以再怎么解釋都沒(méi)用,挨了匪徒的打也就罷了,竟然還被**猛揍一頓,讓他老實(shí)交待。他怕耽誤公司交待的任務(wù),只好報(bào)出了公司的名字,本想著這樣只是可以趕緊讓公司派人來(lái)把資料及時(shí)轉(zhuǎn)交給客戶,沒(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)管閑事?。侩y道他不怕死?他要是真幫我,那他不是傻子就是精神有問(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è)城市的戶口?還是因?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)閼岩赡?,就能給你戴個(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è)推著車買水果的婦女。他們都說(shuō)當(dāng)時(shí)那男的的確是去幫被搶的婦女奪包,不是搶劫犯。可是當(dāng)我想要他們陪我去趟***跟pol.ice證明一下的時(shí)候,他們卻死活都不肯。說(shuō)不想多管閑事,怕惹一身臊。在我苦苦哀求無(wú)果的情況下,我不得不耍了點(diǎn)小手段,與其說(shuō)是手段,不如說(shuō)是無(wú)奈之舉。 
我說(shuō)我是記者,現(xiàn)在要對(duì)那天發(fā)生的事件,寫(xiě)篇評(píng)論。廣州街頭一婦女被搶,好心人施救,反被誣賴是歹徒,旁觀者無(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è)好人被誣賴受不白之苦的。 
他們掂量了很久,終于還是被我說(shuō)動(dòng)了。 
我又去找了男人公司的上司,盡管他很不情愿的開(kāi)證明說(shuō)那天的確是派男人去給客戶送資料的事實(shí),但是礙于我與他們老板朋友有交情的情面,還是開(kāi)了。盡管,我也知道,那個(gè)原來(lái)的朋友其實(shí)也許已經(jīng)沒(méi)得朋友可作了。 
我找了律師,咨詢了這方面的法律,托了很多朋友和同學(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í)候,我失去了原本可以稱之為好友的朋友;甚至失去了以后可能再聯(lián)系的可能。但是我得到的更多,更多,我得到了讓一個(gè)好人恢復(fù)聲譽(yù)的機(jī)會(huì),我得到了去幫助一個(gè)值得去幫助的人幸運(yùn),我也得到了一份我對(duì)自己的由衷的感激。 
我不知道,他以后再碰到這樣的事還會(huì)不會(huì)毫無(wú)顧慮的沖上去幫忙,也不知道他內(nèi)心是不是已經(jīng)開(kāi)始對(duì)于做一個(gè)好人的概念有了新的詮釋,可是我知道他本質(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)讓我為難,所以便拼命拒絕我的好意。 
男人早出晚歸,我想或許是真的找到工作了??粗麄兠刻旖钇AΡM的樣子,我心里酸酸的,卻又不知道該如何幫他們。我第一次感覺(jué)到:那種無(wú)可奈何的難過(guò),竟然是能折磨人的。 
元旦的時(shí)候,我在樓道遇到他們,夫妻二人高興的跟我打招呼,說(shuō)要出去吃大餐??粗麄冇姓f(shuō)有笑的出門,我心里不禁艷羨起來(lái),也許在我們?yōu)樗麄冸y過(guò)的時(shí)候,他們卻能找到屬于他們自己的生活的點(diǎn)滴快樂(lè)和幸福。 
第二天,我一看到他們,就開(kāi)始調(diào)侃:昨天去哪里吃的大餐?他們并沒(méi)有不好意思,而是神秘的笑了,那笑有點(diǎn)天真,又有點(diǎn)溫暖。女的趴早我耳朵邊悄悄的說(shuō):大姐,你知道么?有種店,是一塊錢吃到飽的!我驚詫了,睜大眼睛看著他們。 
在廣州呆過(guò)的人都知道,有很多快餐店,為了吸引顧客,總喜歡在門口張貼著一塊錢吃到飽的大條幅,可是我們每個(gè)去過(guò)的人都知道,那只是一種標(biāo)語(yǔ),真的進(jìn)去消費(fèi)了,是永遠(yuǎn)不可能會(huì)讓你花一塊錢吃頓飯的。說(shuō)句實(shí)話,進(jìn)去吃飯就算你一個(gè)人,吃下來(lái),再怎么節(jié)省也要20塊錢。何況是夫妻倆人一塊去吃呢? 
我很懷疑的看著他們,他們似乎有點(diǎn)不好意思了,男人終于忍不住了說(shuō):真的,大姐;我們沒(méi)騙你,我們昨天去吃過(guò)了,我們兩口子一共就花了五塊錢!我失笑出聲:怎么可能,米飯一個(gè)人都要算兩塊錢呢,五塊錢,你們吃的啥? 
女人嘿嘿的笑了:我們進(jìn)去,看菜單,發(fā)現(xiàn)只有一種小菜是一塊錢,就是花生米,這么小一碟。一邊說(shuō)著,她便用手比劃著,其實(shí)她不比劃我也知道那碟花生,估計(jì)一共不會(huì)超過(guò)10粒花生米。因?yàn)樵诓宛^里,這種一塊錢一碟的花生米,只是為了響應(yīng)他們的一塊錢吃到飽的口號(hào)的?,F(xiàn)實(shí)中真正去點(diǎn)這個(gè)菜的人屈指可數(shù)。 
女人還在眉飛色舞的說(shuō)著:他們的例湯是免費(fèi)的,一大盆呢! 反正米飯按人頭算錢,一個(gè)收兩塊,我們倆就著花生米一人吃了四碗米飯,喝光了所有的湯,吃的飽飽的,只花了五塊錢呢。 
說(shuō)完,他們倆相視一笑,反而讓我覺(jué)得不好意思起來(lái)。我不知道,他們是懷著多大的勇氣,走進(jìn)一個(gè)還不錯(cuò)的餐館,坐下來(lái),只點(diǎn)一碟花生米,卻能吃完四碗飯的?我也不知道,他們?cè)诤裙饷赓M(fèi)的湯時(shí), 一?;ㄉ拙椭煌腼?jiān)趺淳统缘哪敲礉M足,那么開(kāi)心。 
我想,當(dāng)時(shí),肯定有很多人用異樣的眼光看著他們,甚至還會(huì)有人竊竊私語(yǔ)的笑話他們老土;也許他們甚至能夠聽(tīng)到別人侮辱的話語(yǔ),也能看到別人鄙視的眼光,但是他們卻還能繼續(xù)坐在那里,吃完那頓飯,并且是高高興興的吃完,然后拿五塊錢去買單。 
我并不覺(jué)得這樣做有多么可恥,也并不覺(jué)得這樣做會(huì)有什么不妥,拿五塊錢來(lái)消費(fèi)也是顧客,消費(fèi)五塊錢并不就比消費(fèi)了50塊的客人低一等。但是,無(wú)論什么時(shí)候,我們卻往往看到在某些消費(fèi)場(chǎng)合,似乎高消費(fèi)更能得到好的周到的服務(wù),又似乎有錢的更能得到尊重。 
我承認(rèn),如果是我,懷里揣著五塊錢,是絕對(duì)不敢去這樣的餐廳消費(fèi)的,我沒(méi)有勇氣去只叫一碟一塊錢的花生米,也許盡管我的食量只是一碗米飯加一碟花生米,但是我還是會(huì)要幾個(gè)也許我根本不會(huì)動(dòng)一筷子的奢侈的菜。其實(shí)內(nèi)心也知道那是浪費(fèi),但是又有哪個(gè)人不喜歡用錢的浪費(fèi)來(lái)購(gòu)買自己面子的實(shí)惠呢? 
在這個(gè)社會(huì),有錢的比沒(méi)錢的說(shuō)話更有底氣,富有的比貧窮的更能得到別人的尊重,高高在上大都是有錢人,社會(huì)底層的都是貧困潦倒的。畢竟現(xiàn)在是商品市場(chǎng)的社會(huì),經(jīng)濟(jì)類型決定了錢是多么重要,錢變成了自尊,面子的代名詞。我們每天都活在賺錢買面子的日子里。在我們奢侈的去花大筆錢買所謂的面子的時(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太少了,買不起足夠的面子?還是賺的錢買來(lái)的面子,遮住了自己的人性尊嚴(yán)? 
金錢,生存,面子,自尊;在人生的天平上,到底孰重孰輕?! 
年前,我懶洋洋的等待著春節(jié)的到來(lái),想著是否該回家陪父母過(guò)年。在我猶豫了又猶豫的時(shí)候,我發(fā)現(xiàn)離過(guò)年還不到10天了,我想公司是非要靠到年前才肯放假的,想著又要買全價(jià)的飛機(jī)票,便在心里開(kāi)始狠狠的想:明年一定不再磨蹭,提前倆月買票,估計(jì)就能買4折的飛機(jī)票回去了。 
就在我敷衍著年前最后幾天的班,想著如何找個(gè)借口提前請(qǐng)假回家的那幾天,我一直沒(méi)看到隔壁的小夫妻。我以為他們?cè)缇突丶疫^(guò)年去了。 
可是就在一天半夜,女的敲開(kāi)了我的門。我睜開(kāi)惺忪的眼睛,含糊的問(wèn)著:有事么?女的顯得很不好意思,說(shuō):對(duì)不起,打擾你了,我想讓您幫個(gè)忙,聽(tīng)說(shuō)民工能網(wǎng)上訂票,你能不能幫忙看看?我答應(yīng)著,讓她進(jìn)了門,我打開(kāi)電腦,開(kāi)始幫忙給她訂火車票??上У氖?,網(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ī)定了,不罰錢就算是寬大處理了。 
原來(lái),女人也聽(tīng)人說(shuō),可以電話訂票,從一大早起來(lái)就去IC電話亭打電話,可是總打不進(jìn)去,就在中午吃飯時(shí)間,偷偷溜出去打電話訂票,可是打通了就說(shuō)票已售完。一連一個(gè)星期都是如此,女人實(shí)在沒(méi)辦法,只好在早上店里沒(méi)客人的時(shí)候,用店門口那個(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è)列次的火車過(guò)年很緊張,不可能正當(dāng)途徑買到票。 
我以前只知道過(guò)年買火車票難,可是沒(méi)想到這么難。我就問(wèn):去火車站排隊(duì)買不行么? 不是聽(tīng)說(shuō)那里很多票販子么?實(shí)在買不到就買黃牛票吧。 
女人沉思半響,說(shuō):我老公已經(jīng)在火車站排隊(duì)排了半個(gè)月了,還沒(méi)買到票呢。他白天請(qǐng)假去排隊(duì)買不到,晚上就通宵不睡覺(jué)在那里排隊(duì)買,還是買不到。票販子天天看到我老公,主動(dòng)找我老公說(shuō)了好幾次,說(shuō)他們有票,保證真的,可是手續(xù)費(fèi)太貴了,我們不舍得阿! 
我說(shuō):多少手續(xù)費(fèi)?總不能比火車票價(jià)還貴吧!女人咧嘴笑了,那笑有點(diǎn)勉強(qiáng):我們回去,坐硬座,票價(jià)才200多,可是手續(xù)費(fèi)卻要300,你說(shuō)兩張票連票錢加手續(xù)費(fèi)就要1000多,我們一個(gè)月的錢啊。這不是喝我們血么?1000塊錢,在我們老家,是一年的收入啊,我們?cè)趺茨苌岬媚兀?nbsp;
聽(tīng)著她的話,我無(wú)語(yǔ)了。我突然感到很自卑,感覺(jué)自己竟然是那么淺薄,那么無(wú)知。 
為了兩張回家的火車票,工作丟了,倆人日日夜夜去排隊(duì)買票,拿著生活費(fèi)去打那個(gè)比長(zhǎng)途還貴的電話,半個(gè)月下來(lái),得到的結(jié)果竟然是:票已售完。 
那么多火車票去哪里了? 為什么天天排隊(duì)買票都說(shuō)沒(méi)票了,票販子卻又喊著:去任何地方都有票,手續(xù)費(fèi)300元呢? 
到底,票都到了何人的手中? 又是怎樣到了這些人的手中的呢?而那天價(jià)手續(xù)費(fèi)的暴利到底在養(yǎng)活著誰(shuí)? 
我氣沖沖的撥通了火車站的服務(wù)電話,我剛說(shuō)完車次,就被告知:春節(jié)前本次車票已全部售完,請(qǐng)轉(zhuǎn)乘其他車次。 
我有些失望,試圖勸說(shuō)他們能不能轉(zhuǎn)車回去?或者坐長(zhǎng)途汽車?女人慘淡的笑了笑:大姐你別操心了,沒(méi)法轉(zhuǎn)車,能經(jīng)過(guò)我們那個(gè)小地方的,就這一個(gè)車次,到別的地方倒車,也不好買票,還是回不去,汽車太貴了,都快趕上飛機(jī)票價(jià)了,不如走回去呢。說(shuō)著還半安慰我似的開(kāi)著這個(gè)黑色的玩笑。 
看著她緊鎖的眉頭,想著也許這會(huì)她老公還在火車站滿懷著那么點(diǎn)希望排著隊(duì),等著老天爺大發(fā)慈悲,給他們兩張回家的票,而我卻還在猶豫著過(guò)年回不回去陪父母,想著回趟家真累,來(lái)回路上夠折騰人的。
我開(kāi)始覺(jué)得自己的卑鄙,甚至渺小。他們也許可以不回去,但是卻非要堅(jiān)持回去,是為了雙方年邁蒼老的父母?還是為了回去分擔(dān)家里的憂愁?無(wú)論怎樣,為了回去,卻要付出這般代價(jià),值得么?也許很多人不以為然,可是在親情的天平上,這個(gè)砝碼卻很重。 
一張過(guò)年回家的火車票,就那么一張薄薄的紙片,不知道要費(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í)列車,又一邊抱歉的告訴你:票已售完。 
隔比夫妻在輪班排隊(duì)買票的情況下,還是沒(méi)得到回家的那一張通行證。
他們天天在火車站等著,
盼著哪天能有個(gè)好心人來(lái)退票,可是這種奢望很渺茫,他們似乎也感覺(jué)到無(wú)力回天,除了等待奇跡,只能盤算著是不是真的要走回家。 
在此期間,我一直不停的在網(wǎng)絡(luò)上搜索著關(guān)于這輛車次的消息。每次看到有人轉(zhuǎn)讓,我都急不可待的去聯(lián)系,可是都是票販子在打廣告,手續(xù)費(fèi)比票價(jià)都高,而且行情看漲,越來(lái)越高。 
我想幫他們出手續(xù)費(fèi),只要他們出票價(jià),可是他們死活不答應(yīng),說(shuō)是原則問(wèn)題,就是走回去也不買高價(jià)票。他們很正式的跟我說(shuō):我們是中國(guó)公民,為什么坐車要買高價(jià)票呢?我們又不比別人低一等!難道我們沒(méi)權(quán)利去享受一張正當(dāng)價(jià)錢的票么?都去買高價(jià)票,以后就真的只有高價(jià)票,沒(méi)有正當(dāng)?shù)幕疖嚻绷?,那些暴利養(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)能為他們做,甚至只是兩張火車票,我都不能幫他們。 
我最終沒(méi)逃脫,找關(guān)系,走后門的那些俗套。我托了朋友,朋友又托了朋友的一個(gè)在火車站工作的朋友,費(fèi)了九牛二虎之力才弄到兩張硬座票。吃飯,應(yīng)酬,說(shuō)著冠冕堂皇的感謝的話,最后,終于在每張票多付了100元的情況下我才有機(jī)會(huì)把票握在手里。 
酒足飯飽后,那人打著酒嗝還在繼續(xù)不停的說(shuō)著:票是多么難買,別人多出300塊手續(xù)費(fèi)他都沒(méi)給,因?yàn)榭丛诶吓笥衙孀由纤彤?dāng)免費(fèi)幫朋友的忙。 
我只好用感激的眼神望著他,說(shuō)著千恩萬(wàn)謝的話,用一種謝謝你的大恩大德的態(tài)度來(lái)應(yīng)承他的恩惠。他滿足的笑著,我也在心里滿意的想著:有了票,他們終于可以回家過(guò)年了。 
當(dāng)我把兩張車票放在他們面前的時(shí)候,他們呆住了,用一種難以置信的崇敬的眼神望著我,良久都不說(shuō)話。我笑著,什么話也沒(méi)說(shuō)。 
女人突然問(wèn)道:你是不是買來(lái)的高價(jià)票?我搖搖頭?那票是哪里來(lái)的?我笑了。我沒(méi)說(shuō)實(shí)話,我不知道為什么,在他們面前有些虛偽的實(shí)話是不需要說(shuō)出來(lái)的。我告訴他們。票是我的一個(gè)同事的朋友買的,原本要回家過(guò)年,可是公司突然說(shuō)有事,回不去了,只好轉(zhuǎn)讓票。結(jié)果正巧讓我知道了,我就趕緊買過(guò)來(lái)給你們送過(guò)來(lái)了。我怕他們說(shuō)錢的事,趕緊補(bǔ)充:票人家沒(méi)多要一分錢,要不去火車站退票還要扣手續(xù)費(fèi)呢,你們要了,正好解決了人家后顧之憂,人家還省錢了呢。 
他們高興的說(shuō)不出話來(lái),一邊把票接過(guò)去,反復(fù)的看著,撫摸著,一邊掏錢給我。我說(shuō)什么也不要。他們便怔住了臉,說(shuō)我不要錢,他們就不要票。我沒(méi)辦法只好收下了錢。 
他們走的日子比我早,我去車站送了他們。我偷偷買了些廣州特產(chǎn)和水果,在他們檢票進(jìn)去的時(shí)候,把東西塞到了他們其中的一個(gè)大編織袋里。 
看著他們拎著大包小包,里面裝滿的或許不是值錢的東西,但是臉上洋溢著的幸福的歡笑里,讓人感覺(jué)那一切都很珍貴。 
他們不時(shí)的回頭看看我,用拎著包的手用力的跟我揮手,咧嘴笑著,眼神里的光彩很溫暖,我內(nèi)心涌起一種莫名的感動(dòng)。竟然有想哭的沖動(dòng),我忍住了,也笑著朝他們揮手。 
他們的身影漸漸消失在人群中,我沒(méi)走,站在那里,我似乎聽(tīng)到了火車的鳴笛聲,那一定是他們要回家的那列火車,那火車?yán)镆欢ㄓ兴麄円丶业膬蓚€(gè)座位。 
歸途很累,很遙遠(yuǎn),可是回家的路卻很溫暖。 
我第一次覺(jué)得過(guò)春節(jié)不那么無(wú)聊,我第一次覺(jué)得來(lái)回的路上不那么勞累。整個(gè)年,我過(guò)的很快樂(lè),當(dāng)我再次回到廣州的時(shí)候,他們夫妻還沒(méi)回來(lái)。 
我想,他們一定是買不到火車票,要等過(guò)了高峰期才能返回。我安靜的等在那里,看著那扇我隔壁的門,希望,在偶爾一天,能再看到那熟悉的身影。 
他們來(lái)的真的很遲,元宵節(jié)過(guò)后一個(gè)星期才姍姍來(lái)遲。我微笑著迎接他們,端去我買的湯圓,跟他們分享我所有的快樂(lè)。 
女人跟男人商量著:想推個(gè)小木車賣點(diǎn)水果或者小吃。問(wèn)我的意見(jiàn),我說(shuō)好。與其給別人打工那么累,還不自由,倒真不如自己買點(diǎn)小吃賺錢好些。 
于是夫妻倆,便買了個(gè)二手的小木車,批發(fā)了點(diǎn)菠蘿,西瓜,在家練熟了削菠蘿和西瓜的技術(shù),便開(kāi)始上街賣起了西瓜菠蘿,一塊錢一塊。白天女人一個(gè)人去,晚上,夫妻倆一起出門,廣州這么亂,丈夫不放心,再晚都陪著老婆賣完了,再回來(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)把削好的賣完,他們就拿回來(lái),分給我吃。我每吃一塊就會(huì)笑著對(duì)他們說(shuō):我又吃掉你們一塊錢。 
其實(shí)我在心里明白,他們完全可以不用送給我吃,他們生活拮據(jù),完全可以自己吃掉,剩下的又不多,水果吃了又對(duì)身體好,以前平時(shí)都不舍得買??墒撬麄?nèi)匀辉敢夥纸o我,因?yàn)椋谒麄兊膬?nèi)心里,他們認(rèn)為是好的東西,都愿意跟別人分享。 
記得以前,在學(xué)習(xí)和生活中,我們經(jīng)常能接觸到:無(wú)私,奉獻(xiàn),善良這些美好的字眼,可是不知道什么時(shí)候我們的周圍發(fā)生了變化,在我們的字典里再也看不到那些美麗的東西,自私自利,冷漠,代替了那些小小的感動(dòng),成了我們的主流。
當(dāng)我,又一次體會(huì)到這種久違了的感覺(jué)的時(shí)候,我欣喜若狂,像個(gè)孩子撿拾到了珍貴的寶貝,我想我一定好好珍藏起來(lái),在哪天忘記的時(shí)候拿出來(lái)看看,提醒自己。 
那天,我下午回來(lái),看到女人在家,很奇怪她沒(méi)出去賣東西。就半開(kāi)玩笑的說(shuō):老板,該開(kāi)工了?怎么還沒(méi)走?女人看到我,先是燦然的笑了笑,說(shuō):今天一天都沒(méi)出去,做買賣的家什沒(méi)了! 
沒(méi)了?賣了?丟了?我連炮竹的問(wèn)道。她說(shuō):昨晚,被城市管理者抓到了,都給砸爛了! 
砸爛了?憑啥?我氣洶洶的問(wèn)。她無(wú)奈的搖頭,說(shuō):說(shuō)是影響市容市貌,還影響環(huán)境衛(wèi)生!他們沒(méi)別的事,就是專門抓小商販的! 
我驚呆了,抓小商販的?我突然一陣悲哀,就算有一百個(gè)理由抓你們,也用不著砸打搶吧?! 跟別人說(shuō)明白不就行了么?用的著這么土匪行為么? 
女人聽(tīng)了我的話,竟然笑了,說(shuō):我就心疼那菠蘿西瓜,好好的,削好的被扔了,沒(méi)削好的也被砸爛了扔的滿地是,我倒糊涂了,是我們推小車賣西瓜臟呢?還是把西瓜砸爛在地上,弄的一地西瓜渣滓臟呢?! 
聽(tīng)著女人的疑問(wèn),我竟然不知道怎么回答! 
是啊,到底是誰(shuí)更骯臟?是那賣西瓜的小販?還是那砸西瓜攤的城市管理者? 
原本干干凈凈的一切,究竟誰(shuí)是罪魁禍?zhǔn)?,究竟是誰(shuí)弄臟了我們的世界?!
35樓 
一輛花了一個(gè)月生活費(fèi)買來(lái)的破舊的小木車,一堆花了半個(gè)月生活費(fè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ì)。也許,這就是人類的悲哀,一種你無(wú)論如何不能逾越,不能跨過(guò)的鴻溝,你只能去了解,卻不能去感受。 
我無(wú)力的想著所發(fā)生的一切,卻又無(wú)能為力的苦笑。我竟然想為她討個(gè)說(shuō)話的能力都沒(méi)有,我感到了自己的有限,感到了自己總在接受了別人的恩賜后卻不能報(bào)答的那種難受,那種矛盾的苦楚。 
我很想,再出錢幫他們買輛小車,可是女人說(shuō)無(wú)論如何不敢去賣西瓜菠蘿了,不是怕城市管理者,是受不了那種活生生的好東西被糟蹋的場(chǎng)面,是見(jiàn)不得那種一片狼藉的情景。
我盡量出些能賺錢的主意,女人說(shuō)老鄉(xiāng)幫她找了個(gè)發(fā)傳單的兼職,不累,她想先做著。我看著她有些消瘦的臉龐,心很疼! 
想著這些天發(fā)生的事,我越想越上火,恨不得把這個(gè)世界洗刷一遍,可是只我一個(gè)人的眼淚不夠,甚至全世界的人的眼淚也不夠! 
我竟然氣的牙疼起來(lái),半邊臉都腫了,疼的我食不下咽,鼻子也因?yà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塊錢的治療牙疼的錢,可是有的人就付不起!和還有更多的人比我貧窮,還有更多的人看不起??!
看病貴,看病難,這已不是什么新鮮話題,可是這個(gè)根深蒂固的問(wèn)題卻始終沒(méi)得到解決!我想到我們不遠(yuǎn)的鄰國(guó)印度,它雖然還不太富有,雖然也人口眾多,但是醫(yī)療制度卻還完善,全民醫(yī)療免費(fèi)。我不由的羨慕起來(lái),不由的想著哪天我們也能享受到此等待遇! 
如果能有那么一天,我想,報(bào)道上就再也不會(huì)有某某小女孩得白血病家人傾家蕩產(chǎn)籌錢治病,也不會(huì)有,,
生病是誰(shuí)的錯(cuò)? 身體的錯(cuò)么?! 沒(méi)錢治病是誰(shuí)的錯(cuò)?家人的錯(cuò)么?!醫(yī)療費(fèi)用居高不下誰(shuí)的錯(cuò)?醫(yī)生的錯(cuò)么?! 
也許誰(shuí)都錯(cuò)了,也許誰(shuí)都沒(méi)錯(cuò)!
那天,我捂著半邊臉,忍著隱隱作痛的牙,心里恨恨的想:這6000塊錢算是白花了。 
女人自從攤子被砸了后,便兼職發(fā)傳單,可是活兒并不是天天都有,所以也是有一天沒(méi)一天的在家歇著。這天她看到我蹲在門口,抱著頭不說(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)這藥很貴吧?女人笑了:不值錢的,都是些花啊草啊的,家鄉(xiāng)的山上多的是,又不是什么高科技生產(chǎn)出來(lái)的化學(xué)**,只幾塊錢一副! 
我開(kāi)玩笑的說(shuō):幾塊錢?那我那6000塊錢不是喂狗了?女人笑了:我們那里窮,人病去不起醫(yī)院,只能找個(gè)老中醫(yī)開(kāi)點(diǎn)中藥熬熬喝!6000塊看個(gè)牙疼,就是村長(zhǎng)一輩子也沒(méi)這個(gè)福氣!那要多少人家一年的收入呢。 
我聽(tīng)著女人的話,開(kāi)始心涼涼的。6000塊,這數(shù)字在我心里邊格外沉重。 
女人突然問(wèn)了一句:在這里的醫(yī)院生孩子要多少錢?我沉吟了一下說(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ī)院的大門,平安的把孩子生下來(lái)呢?! 
生存是人共同的權(quán)利,如果連生存都被剝奪,或者說(shuō)為生存要付出慘痛的血的代價(jià),這樣的生存還能配的上人類賦予它的最初的意義么? 
一個(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)辦法只好收下,眼里卻總是滿是不好意思的感激和受之有愧。于是她用更拼命的陪我運(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)。怕再晚,挺著臨盆的大肚子坐火車不方便,所以才決定現(xiàn)在就走。 
我驚呆了,不知道該說(shuō)什么;我滿腦子浮現(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è)人走的,為了省錢,女人死活沒(méi)讓男人送。 
我不知道一個(gè)挺著肚子的女人,拎著大包小包好幾個(gè),在熙熙攘攘的人群中是怎樣擠上了火車,又是怎樣的一個(gè)人孤孤單單的回到了家。但是,我知道,如果是我,我做不到,不是沒(méi)勇氣,是沒(méi)那個(gè)能力! 
沒(méi)幾天,男人就搬走了,因?yàn)樗X(jué)得一個(gè)人住個(gè)幾百塊的房子不劃算,賺的錢都搭在住上了,為了省錢,他選擇了免費(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é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 陳曉 閱讀(380) | 評(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è)類,在這個(gè)類里做這個(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ō)窗口類名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);
 //窗口類名
 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 陳曉 閱讀(4092) | 評(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)也稱為郵件槽,是Windows 提供的進(jìn)程間通信的手段,

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

何為服務(wù)端?創(chuàng)建郵槽的那一端就是服務(wù)端。
還有需要提及的一點(diǎn)是,客戶端在使用郵槽發(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ù)端:                                        客戶端:
首先創(chuàng)建郵槽CreateMailslot               打開(kāi)油槽CreateFile
讀取數(shù)據(jù) ReadFile                           寫(xiě)入數(shù)據(jù)WriteFile
完事了,只有這四個(gè)函數(shù)。也很容易理解。 客戶端寫(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。
客戶端函數(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;
}
//客戶端我在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)程之間的通信的,命名管道依賴于底層網(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ù)端可以控制哪些客戶有權(quán)與其建立連接,

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

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

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

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

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

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

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

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

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

而在消息模式下,客戶機(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ě)

客戶端

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

就這些東西,今天由于不仔細(xì)看msdn 寫(xiě)程序?qū)懨闪恕?。。等?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ù)只能從客戶端到服務(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ū)大小 ,就類似創(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ō)一下客戶端的函數(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
在客戶端可以用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);
}

 

//客戶端的代碼 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 陳曉 閱讀(5440) | 評(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 之間的通信了 ?。。?/p>

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

當(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ù)類型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ù)類型 我們?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ù)類型
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 陳曉 閱讀(2080) | 評(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要類的全局變量哦 
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 陳曉 閱讀(2281) | 評(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 陳曉 閱讀(710) | 評(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 陳曉 閱讀(320) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲手机成人高清视频| 在线播放日韩专区| 亚洲欧美日韩中文视频| 欧美顶级大胆免费视频| 久久婷婷综合激情| 欧美一级播放| 午夜久久久久久| 亚洲欧美视频在线观看视频| 亚洲一区高清| 亚洲欧美日韩一区在线| 午夜精品久久久久久久男人的天堂| 一本大道久久a久久综合婷婷| 亚洲国内欧美| 亚洲麻豆av| 亚洲精品一区在线观看| 欧美二区在线播放| 欧美激情一区二区三区成人| 欧美成人首页| 欧美日韩亚洲另类| 国产精品一区二区你懂得| 国产一区二区三区在线免费观看| 在线精品国产成人综合| 亚洲精品国偷自产在线99热| 中日韩男男gay无套| 欧美一区二区三区四区在线 | 国产午夜精品久久久| 国产日韩精品视频一区| 亚洲激情小视频| 亚洲性图久久| 女人色偷偷aa久久天堂| 亚洲国产一区二区三区高清 | 亚洲永久免费观看| 久久激情网站| 欧美日本在线一区| 国产日韩欧美在线一区| 亚洲精品久久| 久久国产精品一区二区三区| 亚洲国产成人91精品 | 欧美在线视频全部完| 欧美电影打屁股sp| 国产日韩欧美另类| 一区二区三区高清不卡| 久久久亚洲欧洲日产国码αv | 亚洲综合色婷婷| 嫩草伊人久久精品少妇av杨幂| 国产精品久久久久一区二区三区| 伊人婷婷欧美激情| 亚洲小视频在线观看| 亚洲在线电影| 欧美激情一区二区三区 | 欧美成人午夜激情在线| 国产日韩精品视频一区二区三区 | 亚洲精品一区二区在线观看| 久久国产精品久久w女人spa| 亚洲日韩欧美视频| 久久精品视频播放| 国产欧美精品一区| 亚洲午夜激情网站| 亚洲黄页一区| 另类天堂av| 亚洲成人自拍视频| 理论片一区二区在线| 欧美一区二区在线免费观看| 国产精品私人影院| 亚洲欧美日韩国产精品 | 久久久青草婷婷精品综合日韩 | 中文国产亚洲喷潮| 亚洲国产精品精华液2区45| 久久www成人_看片免费不卡| 国产免费成人在线视频| 性做久久久久久免费观看欧美| 99re6这里只有精品| 免费亚洲一区二区| 亚洲麻豆视频| 亚洲乱亚洲高清| 欧美日韩国产电影| 欧美精品一区二区三区很污很色的| 在线色欧美三级视频| 在线观看欧美亚洲| 国产精品一区二区视频| 亚洲精品中文字幕在线| 99视频在线精品国自产拍免费观看| 欧美高清视频一二三区| 男女激情久久| 国产精品多人| 欧美在线播放一区| 久久电影一区| 亚洲国产精品久久91精品| 久久永久免费| 美女91精品| 日韩一级片网址| 一区二区免费在线视频| 国产精品久久久久av免费| 91久久精品一区二区别| 亚洲人成在线播放| 欧美午夜在线观看| 久久精品二区三区| 狼狼综合久久久久综合网| 一区二区动漫| 亚洲一区精彩视频| 又紧又大又爽精品一区二区| 亚洲黄色在线看| 欧美巨乳波霸| 久久精品中文| 欧美久久精品午夜青青大伊人| 亚洲免费在线视频| 久久久激情视频| 亚洲最新色图| 夜夜嗨av一区二区三区| 亚洲最新色图| 国产精品免费视频xxxx| 香蕉av福利精品导航| 亚洲国产精品传媒在线观看 | 亚洲国产日韩在线| 亚洲精选一区| 亚洲素人一区二区| 欧美影院成人| 亚洲乱码国产乱码精品精可以看| 最近中文字幕日韩精品| 国产一区二区在线观看免费播放| 久久久青草婷婷精品综合日韩| 麻豆精品精华液| 欧美日韩在线不卡| 欧美α欧美αv大片| 欧美激情五月| 欧美一区二区私人影院日本| 久久伊伊香蕉| 亚洲一区国产视频| 欧美极品影院| 久久gogo国模啪啪人体图| 女女同性精品视频| 午夜精品久久久久久久久久久久| 久久人人97超碰人人澡爱香蕉| 亚洲国产女人aaa毛片在线| 一区二区三区免费网站| 韩国女主播一区| 夜夜爽99久久国产综合精品女不卡 | 久久夜色精品国产亚洲aⅴ| 欧美高清在线视频观看不卡| 亚洲综合色婷婷| 久久婷婷成人综合色| 在线精品亚洲一区二区| 久久aⅴ国产欧美74aaa| 亚洲一区图片| 欧美黄色一区二区| 久久久夜精品| 国产精品蜜臀在线观看| 亚洲一区二区三区高清 | 国产乱肥老妇国产一区二| 亚洲国产欧美在线人成| 很黄很黄激情成人| 亚洲国产精品久久久久婷婷老年 | 99精品视频免费观看视频| 久久精品视频免费播放| 久久av一区二区三区| 国产精品久久久久久久久| 亚洲区欧美区| 国产亚洲欧美另类一区二区三区| 亚洲欧美视频在线| 亚洲欧美日韩成人高清在线一区| 欧美大片在线观看一区| 美国三级日本三级久久99| 国产日韩欧美成人| 一本大道久久a久久综合婷婷| 91久久综合| 美国三级日本三级久久99| 久久亚洲国产成人| 国产欧美日韩在线播放| 亚洲国产精品va在看黑人| 一区二区三区导航| 欧美人妖在线观看| 亚洲区中文字幕| 欧美日韩久久精品| 最新中文字幕一区二区三区| 亚洲香蕉在线观看| 国产精品人人做人人爽| 午夜老司机精品| 亚洲欧美国产三级| 免费亚洲一区二区| 久久激五月天综合精品| 国产日韩欧美综合| 欧美一区免费| 欧美在线地址| 欧美99在线视频观看| 亚洲一区黄色| 欧美在线免费| 国模一区二区三区| 麻豆国产va免费精品高清在线| 欧美freesex8一10精品| 亚洲午夜成aⅴ人片| 国产欧美91| 美脚丝袜一区二区三区在线观看| 亚洲免费观看高清在线观看| 篠田优中文在线播放第一区| 亚洲看片一区| 国产亚洲欧美日韩在线一区| 免费成人黄色av| 亚洲一区二区网站| 免费不卡亚洲欧美| 久久aⅴ国产紧身牛仔裤|