常見(jiàn)面試題

ls ?cd mv cp touch mkdir mkfifo ln tailf du top iostat uptime df?

netstat

顯示網(wǎng)絡(luò)狀態(tài)

tcpdump

主要是截獲通過(guò)本機(jī)網(wǎng)絡(luò)接口的數(shù)據(jù)夫椭,用以分析

ipcs

檢查系統(tǒng)上共享內(nèi)存的分配

ipcrm

手動(dòng)解除系統(tǒng)上共享內(nèi)存的分配

查看CPU信息

#cat /proc/cpuinfo

查看內(nèi)存信息

#cat /proc/meminfo ?

查看硬盤分區(qū)信息

使用下面的命令,可以看到當(dāng)前硬盤的分區(qū)信息氯庆,以及容量大小蹭秋、已使用的空間和剩余空間大小扰付,還可以查看每個(gè)分區(qū)的掛載點(diǎn):

#df -lh

查看進(jìn)程狀態(tài)

ps 命令

共享內(nèi)存

是最快的可用IPC(進(jìn)程間通信)形式。它允許多個(gè)不相關(guān)的進(jìn)程去訪問(wèn)同一部分邏輯內(nèi)存仁讨。共享內(nèi)存是由IPC為一個(gè)進(jìn)程創(chuàng)建的一個(gè)特殊的地址范圍羽莺,它將出現(xiàn)在進(jìn)程的地址空間中。其他進(jìn)程可以把同一段共享內(nèi)存段“連接到”它們自己的地址空間里去洞豁。

進(jìn)程內(nèi)存空間分布

注意棧從高到低分配盐固,堆從低到高分配。



進(jìn)程間通訊機(jī)制

http://blog.51cto.com/12880687/2095466

在多線程環(huán)境下丈挟,每個(gè)線程擁有一個(gè)棧和一個(gè)程序計(jì)數(shù)器刁卜。棧和程序計(jì)數(shù)器用來(lái)保存線程的執(zhí)行歷史和線程的執(zhí)行狀態(tài),是線程私有的資源曙咽。其他的資源(比如堆蛔趴、地址空間、全局變量)是由同一個(gè)進(jìn)程內(nèi)的多個(gè)線程共享例朱。線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位孝情。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位茉继。一條線程指的是進(jìn)程中一個(gè)單一順序的控制流咧叭,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù)。在Unix ?System V及SunOS中也被稱為輕量進(jìn)程(lightweight processes),但輕量進(jìn)程更多指內(nèi)核線程(kernel thread)缎谷,而把用戶線程(user thread)稱為線程。


所有 32 位應(yīng)用程序都有 4 GB 的進(jìn)程地址空間(32 位地址最多可以映射 4 GB 的內(nèi)存


動(dòng)態(tài)鏈接和靜態(tài)鏈接

動(dòng)態(tài)鏈接是指在生成可執(zhí)行文件時(shí)不將所有程序用到的函數(shù)鏈接到一個(gè)文件婉弹,因?yàn)橛性S多函數(shù)在操作系統(tǒng)帶的dll文件中,當(dāng)程序運(yùn)行時(shí)直接從操作系統(tǒng)中找终吼。 而靜態(tài)鏈接就是把所有用到的函數(shù)全部鏈接到exe文件中镀赌。

動(dòng)態(tài)鏈接是只建立一個(gè)引用的接口,而真正的代碼和數(shù)據(jù)存放在另外的可執(zhí)行模塊中际跪,在運(yùn)行時(shí)再裝入商佛;而靜態(tài)鏈接是把所有的代碼和數(shù)據(jù)都復(fù)制到本模塊中,運(yùn)行時(shí)就不再需要庫(kù)了

如何定位內(nèi)存泄露

內(nèi)存泄漏是指堆內(nèi)存的泄漏姆打。堆內(nèi)存是指程序從堆中分配的良姆、大小任意的(內(nèi)存塊的大小可以在程序運(yùn)行期決定)、使用完后必須顯示釋放的內(nèi)存幔戏。應(yīng)用程序一般使用malloc玛追、realloc、new等函數(shù)從堆中分配到一塊內(nèi)存,使用完后痊剖,程序必須負(fù)責(zé)相應(yīng)的調(diào)用free或delete釋放該內(nèi)存塊韩玩。否則,這塊內(nèi)存就不能被再次使用陆馁,我們就說(shuō)這塊內(nèi)存泄漏了找颓。

C++程序缺乏相應(yīng)的手段來(lái)檢測(cè)內(nèi)存信息,只能使用top指令觀察進(jìn)程的動(dòng)態(tài)內(nèi)存總額氮惯。而且程序退出時(shí)叮雳,我們無(wú)法獲知任何內(nèi)存泄漏信息想暗。使用Linux命令回收內(nèi)存妇汗,可以使用ps、kill兩個(gè)命令檢測(cè)內(nèi)存使用情況和進(jìn)行回收说莫。在使用超級(jí)用戶權(quán)限時(shí)使用命令“ps”杨箭,它會(huì)列出所有正在運(yùn)行的程序名稱和對(duì)應(yīng)的進(jìn)程號(hào)(PID)。kill命令的工作原理是向Linux操作系統(tǒng)的內(nèi)核送出一個(gè)系統(tǒng)操作信號(hào)和程序的進(jìn)程號(hào)(PID)储狭。

如果是go 可以用性能分析攻擊go tool pprof ,和gogctrace

常見(jiàn)信號(hào)

SIGSTOP暫停進(jìn)程 互婿、SIGKILL殺死進(jìn)程

判斷系統(tǒng)位數(shù)

0取反,然后判斷大小

原碼反碼補(bǔ)碼

原碼就是二進(jìn)制定點(diǎn)表示法辽狈,即最高位為符號(hào)位慈参,“0”表示正,“1”表示負(fù)刮萌,其余位表示數(shù)值的大小驮配。

反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反着茸,但符號(hào)位除外壮锻。

補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1涮阔。

注意:計(jì)算機(jī)中只有 +0 而不存在 -0的說(shuō)法猜绣,因?yàn)?0是完全沒(méi)有意義的存在

守護(hù)進(jìn)程

Daemon()程序是一直運(yùn)行的服務(wù)端程序,又稱為守護(hù)進(jìn)程敬特。通常在系統(tǒng)后臺(tái)運(yùn)行掰邢,沒(méi)有控制終端,不與前臺(tái)交互伟阔,Daemon程序一般作為系統(tǒng)服務(wù)使用辣之,在系統(tǒng)關(guān)閉時(shí)才結(jié)束。

死鎖的條件减俏。(互斥條件(Mutual exclusion)

1召烂、資源不能被共享,只能由一個(gè)進(jìn)程使用娃承。

2奏夫、請(qǐng)求與保持條件(Hold and wait):已經(jīng)得到資源的進(jìn)程可以再次申請(qǐng)新的資源怕篷。

3、非剝奪條件(No pre-emption):已經(jīng)分配的資源不能從相應(yīng)的進(jìn)程中被強(qiáng)制地剝奪酗昼。

4廊谓、循環(huán)等待條件(Circular wait):系統(tǒng)中若干進(jìn)程組成環(huán)路,該環(huán)路中每個(gè)進(jìn)程都在等待相鄰進(jìn)程正占用的資源麻削。

處理死鎖的策略

1.忽略該問(wèn)題蒸痹。例如鴕鳥(niǎo)算法,該算法可以應(yīng)用在極少發(fā)生死鎖的的情況下呛哟。為什么叫鴕鳥(niǎo)算法呢叠荠,因?yàn)閭髡f(shuō)中鴕鳥(niǎo)看到危險(xiǎn)就把頭埋在地底下,可能鴕鳥(niǎo)覺(jué)得看不到危險(xiǎn)也就沒(méi)危險(xiǎn)了吧扫责。跟掩耳盜鈴有點(diǎn)像榛鼎。

2.檢測(cè)死鎖并且恢復(fù)。

3.仔細(xì)地對(duì)資源進(jìn)行動(dòng)態(tài)分配鳖孤,以避免死鎖者娱。

4.通過(guò)破除死鎖四個(gè)必要條件之一,來(lái)防止死鎖產(chǎn)生苏揣。

Epoll機(jī)制

阻塞I/O的缺點(diǎn)黄鳍。但是阻塞I/O模式下,一個(gè)線程只能處理一個(gè)流的I/O事件平匈。如果想要同時(shí)處理多個(gè)流框沟,要么多進(jìn)程(fork),要么多線程(pthread_create)吐葱,很不幸這兩種方法效率都不高街望。

epoll可以理解為event poll,不同于忙輪詢和無(wú)差別輪詢弟跑,epoll之會(huì)把哪個(gè)流發(fā)生了怎樣的I/O事件通知我們灾前。

阻塞模式下,內(nèi)核對(duì)于I/O事件的處理是阻塞或者喚醒孟辑,而非阻塞模式下則把I/O事件交給其他對(duì)象(后文介紹的select以及epoll)處理哎甲。

select的缺點(diǎn):

* 單個(gè)進(jìn)程能夠監(jiān)視的文件描述符的數(shù)量存在最大限制,通常是1024饲嗽,當(dāng)然可以更改數(shù)量炭玫,但由于select采用輪詢的方式掃描文件描述符,文件描述符數(shù)量越多貌虾,性能越差吞加;(在linux內(nèi)核頭文件中,有這樣的定義:#define __FD_SETSIZE??? 1024)

* 內(nèi)核 / 用戶空間內(nèi)存拷貝問(wèn)題,select需要復(fù)制大量的句柄數(shù)據(jù)結(jié)構(gòu)衔憨,產(chǎn)生巨大的開(kāi)銷

* select返回的是含有整個(gè)句柄的數(shù)組践图,應(yīng)用程序需要遍歷整個(gè)數(shù)組才能發(fā)現(xiàn)哪些句柄發(fā)生了事件掺冠;

* select的觸發(fā)方式是水平觸發(fā),應(yīng)用程序如果沒(méi)有完成對(duì)一個(gè)已經(jīng)就緒的文件描述符進(jìn)行IO操作码党,那么之后每次select調(diào)用還是會(huì)將這些文件描述符通知進(jìn)程德崭。

相比select模型,poll使用鏈表保存文件描述符揖盘,因此沒(méi)有了監(jiān)視文件數(shù)量的限制眉厨,但其他三個(gè)缺點(diǎn)依然存在。

拿select模型為例扣讼,假設(shè)我們的服務(wù)器需要支持100萬(wàn)的并發(fā)連接缺猛,則在__FD_SETSIZE 為1024的情況下,則我們至少需要開(kāi)辟1k個(gè)進(jìn)程才能實(shí)現(xiàn)100萬(wàn)的并發(fā)連接椭符。除了進(jìn)程間上下文切換的時(shí)間消耗外,從內(nèi)核/用戶空間大量的無(wú)腦內(nèi)存拷貝耻姥、數(shù)組輪詢等销钝,是系統(tǒng)難以承受的。因此琐簇,基于select模型的服務(wù)器程序蒸健,要達(dá)到10萬(wàn)級(jí)別的并發(fā)訪問(wèn),是一個(gè)很難完成的任務(wù)婉商。

因此似忧,該epoll上場(chǎng)了。

由于epoll的實(shí)現(xiàn)機(jī)制與select/poll機(jī)制完全不同丈秩,上面所說(shuō)的 select的缺點(diǎn)在epoll上不復(fù)存在盯捌。

設(shè)想一下如下場(chǎng)景:有100萬(wàn)個(gè)客戶端同時(shí)與一個(gè)服務(wù)器進(jìn)程保持著TCP連接。而每一時(shí)刻蘑秽,通常只有幾百上千個(gè)TCP連接是活躍的(事實(shí)上大部分場(chǎng)景都是這種情況)饺著。如何實(shí)現(xiàn)這樣的高并發(fā)?

epoll改進(jìn)了select的兩個(gè)缺點(diǎn)肠牲,使用了三個(gè)數(shù)據(jù)結(jié)構(gòu)從而能夠在管理大量的描述符的情況下幼衰,對(duì)系統(tǒng)資源的使用并沒(méi)有急劇的增加,而只是對(duì)內(nèi)存的使用有所增加(畢竟存儲(chǔ)大量的描述符的數(shù)據(jù)結(jié)構(gòu)會(huì)占用大量?jī)?nèi)存)缀雳。

epoll在實(shí)現(xiàn)上的三個(gè)核心點(diǎn)是:1渡嚣、mmap,2、紅黑樹(shù)识椰,3扬绪、rdlist(就緒描述符鏈表)接下來(lái)一一解釋這三個(gè)并且解釋為什么會(huì)高效;

1裤唠、mmap是共享內(nèi)存挤牛,用戶進(jìn)程和內(nèi)核有一段地址(虛擬存儲(chǔ)器地址)映射到了同一塊物理地址上,這樣當(dāng)內(nèi)核要對(duì)描述符上的事件進(jìn)行檢查的時(shí)候就不用來(lái)回的拷貝了种蘸。

2墓赴、紅黑樹(shù)是用來(lái)存儲(chǔ)這些描述符的,因?yàn)榧t黑樹(shù)的特性航瞭,就是良好的插入诫硕,查找,刪除性能O(lgN)刊侯。

3. rdlist ? 就緒描述符鏈表這是一個(gè)雙鏈表章办,epoll_wait()函數(shù)返回的也是這個(gè)就緒鏈表。

當(dāng)內(nèi)核創(chuàng)建了紅黑樹(shù)之后滨彻,同時(shí)也會(huì)建立一個(gè)雙向鏈表rdlist藕届,用于存儲(chǔ)準(zhǔn)備就緒的描述符,當(dāng)調(diào)用epoll_wait的時(shí)候在timeout時(shí)間內(nèi)亭饵,只是簡(jiǎn)單的去管理這個(gè)rdlist中是否有數(shù)據(jù)休偶,如果沒(méi)有則睡眠至超時(shí),如果有數(shù)據(jù)則立即返回并將鏈表中的數(shù)據(jù)賦值到events數(shù)組中辜羊。這樣就能夠高效的管理就緒的描述符踏兜,而不用去輪詢所有的描述符。

對(duì)與rdlist的維護(hù):當(dāng)執(zhí)行epoll_ctl時(shí)除了把socket描述符放入到紅黑樹(shù)中之外八秃,還會(huì)給內(nèi)核中斷處理程序注冊(cè)一個(gè)回調(diào)函數(shù)碱妆,告訴內(nèi)核,當(dāng)這個(gè)描述符上有事件到達(dá)(或者說(shuō)中斷了)的時(shí)候就調(diào)用這個(gè)回調(diào)函數(shù)昔驱。這個(gè)回調(diào)函數(shù)的作用就是將描述符放入到rdlist中疹尾,所以當(dāng)一個(gè)socket上的數(shù)據(jù)到達(dá)的時(shí)候內(nèi)核就會(huì)把網(wǎng)卡上的數(shù)據(jù)復(fù)制到內(nèi)核,然后把socket描述符插入就緒鏈表rdlist中舍悯。

epoll使用過(guò)程


創(chuàng)建socket ? ? ? // socket

設(shè)置非阻塞模式 ? //setnonblocking

將socket綁定ip ? //bind

監(jiān)聽(tīng)指定端口 ? ?//listen

創(chuàng)建一個(gè)epoll的句柄 // epoll_create()

添加監(jiān)聽(tīng)套接字 listenfd 航棱,用電平觸發(fā)模式來(lái)監(jiān)聽(tīng)輸入事件 ?// ev.events = EPOLLIN; ? ?ev.data.fd = listenfd; epoll_ctl(epfd, EPOLL_CTL_ADD, listenfd, &ev)?

外層的 while 循環(huán)是主要事件循環(huán)。它調(diào)用epoll_wait(2)萌衬,線程保持阻塞以等待事件到來(lái)饮醇。當(dāng)事件就緒,epoll_wait(2) 用?events?參數(shù)返回事件秕豫,這個(gè)參數(shù)是一群?epoll_event?結(jié)構(gòu)體朴艰。當(dāng)我們添加新的監(jiān)聽(tīng)輸入連接以及刪除終止的現(xiàn)有連接時(shí)观蓄,efd 這個(gè) epoll 實(shí)例在事件循環(huán)中不斷更新。 //epoll_ctl()系統(tǒng)調(diào)用祠墅。通過(guò)此調(diào)用向epoll對(duì)象中添加侮穿、刪除、修改感興趣的事件毁嗦,返回0標(biāo)識(shí)成功亲茅,返回-1表示失敗。

代碼樣例:http://blog.51cto.com/12880687/2119807

epoll有兩個(gè)工作模式

ET模式是高速模式狗准,叫做邊緣觸發(fā)模式克锣。當(dāng)工作在ET模式下,如果一個(gè)描述符上有數(shù)據(jù)到達(dá)腔长,然后讀取這個(gè)描述符上的數(shù)據(jù)如果沒(méi)有將數(shù)據(jù)全部讀完的話袭祟,當(dāng)下次epoll_wait返回的時(shí)候這個(gè)描述符里的數(shù)據(jù)就再也讀取不到了,因?yàn)檫@個(gè)描述符不會(huì)再次觸發(fā)返回捞附,也就沒(méi)法去讀取巾乳,所以對(duì)于這種模式下對(duì)一個(gè)描述符的數(shù)據(jù)的正確讀取方式是用一個(gè)死循環(huán)一直讀,讀到么有數(shù)據(jù)可讀的情況下才可以認(rèn)為是讀取結(jié)束鸟召。ET模式在物理實(shí)現(xiàn)上是基于電平的高低變化來(lái)工作的胆绊,就是從高電平變成低電平,或者從低電平變成高電平的這個(gè)上升沿或者下降沿才會(huì)觸發(fā)药版,也就是狀態(tài)變化導(dǎo)致觸發(fā)辑舷,而當(dāng)一個(gè)描述符上數(shù)據(jù)未讀完的時(shí)候這個(gè)狀態(tài)是不會(huì)發(fā)生變化的,所以觸發(fā)不了槽片,LT模式是在只有出現(xiàn)高電平的時(shí)候才會(huì)觸發(fā)。

LT模式是默認(rèn)模式肢础,叫做水平觸發(fā)模式还栓。工作在LT模式下,如果對(duì)一個(gè)描述符的數(shù)據(jù)沒(méi)有讀取完成传轰,那么下次當(dāng)epoll_wait返回的時(shí)候會(huì)繼續(xù)觸發(fā)剩盒,也就可以繼續(xù)獲取到這個(gè)描述符,從而能夠接著讀慨蛙。

?大端小端

小端模式 :強(qiáng)制轉(zhuǎn)換數(shù)據(jù)不需要調(diào)整字節(jié)內(nèi)容辽聊,1、2期贫、4字節(jié)的存儲(chǔ)方式一樣跟匆。?

大端模式 :符號(hào)位的判定固定為第一個(gè)字節(jié),容易判斷正負(fù)通砍。

之所以有大小端是因?yàn)椴煌愋偷奶幚砥饔?位玛臂、16位烤蜕、32位、64位迹冤,存儲(chǔ)存在排序問(wèn)題讽营,有些處理器同時(shí)支持大端和小端

網(wǎng)絡(luò)序和主機(jī)序

網(wǎng)絡(luò)字節(jié)序是確定的,而主機(jī)字節(jié)序的多樣性往往是混淆的原因泡徙。網(wǎng)絡(luò)傳輸一般采用大端序橱鹏,也被稱之為網(wǎng)絡(luò)字節(jié)序,或網(wǎng)絡(luò)序堪藐,即先發(fā)送高字節(jié)數(shù)據(jù)再發(fā)送低字節(jié)數(shù)據(jù)(如:四個(gè)字節(jié)由高位向低位用0-31標(biāo)示后莉兰,將首先發(fā)送0-7位第一字節(jié),在發(fā)送8-15第二字節(jié)庶橱,以此下去)贮勃。IP協(xié)議中定義大端為網(wǎng)絡(luò)字節(jié)序

判斷機(jī)器CPU位數(shù)

?直接打印出指針占多少字節(jié)苏章,4字節(jié)為32位系統(tǒng)寂嘉,8字節(jié)為64位系統(tǒng)。

判斷機(jī)器大小端

采用union判斷枫绅,union的成員都是從低地址開(kāi)始存放:?

union U{

? ? short a;

? ? char b;

};

UNIX環(huán)境編程

UNIX常見(jiàn)命令

文件操作

進(jìn)程編程

線程編程

進(jìn)程間通信


硬鏈接和源文件是同一份文件泉孩,而軟連接是獨(dú)立的文件


項(xiàng)目中遇到的難點(diǎn)?

項(xiàng)目有什么改進(jìn)的地方并淋?

測(cè)試用例基本為0寓搬,測(cè)試用例,覆蓋

回答說(shuō)是快排县耽,然后時(shí)間復(fù)雜度平均 O(nlogn)句喷,最差O(n2?)。實(shí)現(xiàn)的話就是一個(gè) partition 和遞歸快速排序兔毙。



列舉說(shuō)明linux系統(tǒng)的各類異步機(jī)制




makefile

gdb調(diào)試


2唾琼, 從socket讀數(shù)據(jù)時(shí),socket緩存里的數(shù)據(jù)澎剥,可能超過(guò)用戶緩存的長(zhǎng)度锡溯,如何處理? 例如哑姚,socket緩存有8kB的數(shù)據(jù)祭饭,而你的緩存只有2kB空間。

3叙量, 向socket發(fā)送數(shù)據(jù)時(shí)倡蝙, 可能只發(fā)送了用戶緩存里的一半,如何處理宛乃?例如悠咱,需要向socket發(fā)送8kB數(shù)據(jù)蒸辆,返回值只有2kB發(fā)送成功。

13析既, TCP的三次握手躬贡, TIME_WAIT和CLOSE_WAIT狀態(tài)是什么?


2眼坏, 從socket讀數(shù)據(jù)時(shí)拂玻,socket緩存里的數(shù)據(jù),可能超過(guò)用戶緩存的長(zhǎng)度宰译,如果處理檐蚜?

? ?? ? 可以調(diào)用realloc(),擴(kuò)大原有的緩存塊尺寸沿侈。?

? ?? ? 但是臨時(shí)申請(qǐng)內(nèi)存的有一定性能損失闯第。

? ?? ?這種情況要看接收緩存的方式。

第一種方式:??使用100k的大接收緩存為例缀拭。?

? ?? ?? ?? ?? ?如果要等待數(shù)據(jù)咳短,并進(jìn)行解析≈肓埽可能發(fā)生緩存不夠的情況咙好。此時(shí)只能擴(kuò)充緩存,或先處理100k的數(shù)據(jù)褐荷,再接收新的數(shù)據(jù)勾效。

第二種方式: 使用緩存隊(duì)列,分成8K大小的隊(duì)列叛甫。

? ?? ?? ?? ?? ?不存在接收緩存不夠的情況层宫。 除非用戶解析已出錯(cuò),使用數(shù)據(jù)接收其监、使用脫勾卒密。 這種方式的代價(jià)是,可能需要將緩存隊(duì)列再次拷貝棠赛、拼接成一塊大的緩存,再進(jìn)行解析膛腐。 而在本人的系統(tǒng)中睛约,只需要將socket接收的數(shù)據(jù)再次原樣分發(fā)給客戶, 所以這種方案是最佳方案哲身。


6辩涝, 非阻塞connect()如何實(shí)現(xiàn)?

? ?? ? 將socket設(shè)置成non-blocking勘天,操作方法同非阻塞read()怔揩、write();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捉邢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子商膊,更是在濱河造成了極大的恐慌伏伐,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晕拆,死亡現(xiàn)場(chǎng)離奇詭異藐翎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)实幕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門吝镣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人昆庇,你說(shuō)我怎么就攤上這事末贾。” “怎么了整吆?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵拱撵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我掂为,道長(zhǎng)裕膀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任勇哗,我火速辦了婚禮昼扛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘欲诺。我一直安慰自己抄谐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布扰法。 她就那樣靜靜地躺著蛹含,像睡著了一般。 火紅的嫁衣襯著肌膚如雪塞颁。 梳的紋絲不亂的頭發(fā)上浦箱,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音祠锣,去河邊找鬼酷窥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伴网,可吹牛的內(nèi)容都是我干的蓬推。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼澡腾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沸伏!你這毒婦竟也來(lái)了糕珊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤毅糟,失蹤者是張志新(化名)和其女友劉穎红选,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體留特,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纠脾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜕青。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苟蹈。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖右核,靈堂內(nèi)的尸體忽然破棺而出慧脱,到底是詐尸還是另有隱情,我是刑警寧澤贺喝,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布菱鸥,位于F島的核電站,受9級(jí)特大地震影響躏鱼,放射性物質(zhì)發(fā)生泄漏氮采。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一染苛、第九天 我趴在偏房一處隱蔽的房頂上張望鹊漠。 院中可真熱鬧,春花似錦茶行、人聲如沸躯概。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)娶靡。三九已至,卻和暖如春看锉,著一層夾襖步出監(jiān)牢的瞬間姿锭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工伯铣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艾凯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓懂傀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蜡感。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蹬蚁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容