原创 蘋果面試題

有100枚平放在桌子上的硬幣,每枚硬幣都有正反兩面,其中10枚正面朝上,另外90枚背面朝上。你不能看、摸或以任何其他方式分辨哪一面朝上。請將這些硬幣分成兩堆,讓每一堆中正面朝上的硬幣數目相同。 這個題很有意思,首先你如果沒有接觸到

原创 爲什麼要引入保護成員

在C++成員中我們需要一種成員比私有成員訪問範圍大比公有成員訪問範圍小的成員。因此就引入了保護成員。 保護成員擴大範圍表現在基類的保護成員在派生類的成員函數中被訪問。 基類的成員本身就是派生類的成員,但是出於隱藏目的不宜設爲公有,

原创 gcc/g++運行程序時出現的錯誤

在windows下的程序放在linux下g++跑不起來了,其中該包含的頭文件我也都引入了,但是就是報錯 undefined reference to `std::basic_string<char, std::char_trai

原创 進程屬性

1:進程號(PID) 進程號是系統維護的唯一一個標識一個進程的正整數,用戶層無法對其進行修改。 Linux下操作系統的第一個進程爲init進程,其他進程在此基礎上增長, 可以使用ps aux 查看當前系統的所有進程的基本屬性。 例

原创 文本方式打開文件與二進制方式打開文件的區別

在Linux平臺中,用文本方式或二進制方式打開文件沒有任何區別。 在Linux平臺中,文本文件以‘\n’作爲換行符號;在Windows平臺中,文本文件以連在一起的‘\r\n’作爲換行符號。在Windows平臺中,如果以文本方式打開

原创 一文了解深淺拷貝

提及深淺拷貝,基礎但是不是很容易掌握。因爲涉及=運算符重 載,涉及到內存管理,涉及到對象的析構等等。 光知道肯定不行,你要給面試官說清楚,怎麼個說清楚法?那就要代碼和解釋並下。 直到我看了《新標準C++程序設計》這本書後,讓我對這

原创 ext2文件系統結構

對於一個磁盤分區來說,在其被指定爲相應的文件系統後,整個分區可以被分爲1024,2048,4096字節大小的塊。 根據塊的不同可以分爲 (1)超級塊:整個文件系統的第一塊空間,包括整個文件系統的基本信息(塊大小,指向空間inode

原创 函數調用步驟

1:在棧中爲形參和局部變量分配存儲空間; 2:將實參值賦值給形參 3:將函數的返回地址(該地址指明瞭函數執行結束後,程序會放到哪裏執行,程序該回到哪裏繼續執行)放入棧中; 4:跳轉到函數內部執行。 函數在執行return 語句的時

原创 主函數源碼

主函數流程 1:參數檢查。參數個數不能少於兩個,如果參數個數大於等於兩個,依次列出所有參數信息。 2:檢測指定參數的文件是否存在,如果存在,讀取文件屬性,如果是普通文件,列讀文件屬性 3:如果是目錄文件,循環查找目錄下的文件,採用

原创 如何自己實現程序查看文件的讀寫權限

利用stat函數實現 int stat(const char *path, struct stat *buf) 我們來看程序 8 #define N_BITS 3 9 10 int main(int

原创 如何向面試官講清楚程序編譯過程

源文件到產生效果是個很複雜的過程 大體步驟分爲編譯和鏈接 你如果只是背,這四點千萬不要忽略 預處理(也稱預編譯,Preprocessing)、編譯(Compilation)、彙編(Assembly)和鏈接(Linking)。 首先

原创 Linux下的ps指令

ps -e 列出當前全部進程 ps -f 顯示出全部列 一般是ps -ef 來看顯示結果 UID:該進程的用戶id PID:進程id PPID:該進程的父進程 如果一個程序的父進程找不到,該程序的進程就稱爲殭屍進程 C:CPU佔

原创 Linux雲服務器怎麼連接本地Xshell

今天虛擬機爛了,可能是更新了個插件,然後就整不好了,無奈只好掏錢買雲服務器。 買了雲服務器有很多問題,首先就是這個服務器怎麼用? 首先在購買成功後會出現一個界面,跳轉後 你會得到2個ip和一個密碼,密碼會在微信上發給你。一般給的

原创 linux中的top指令

實施top指令後我們看到了如下 top:查看服務器進程佔的資源 PR:進程優先級 PID:進程ID USER:進程對應的用戶 VIRT:虛擬內存 申請500M,實際使用了200M,虛擬內存就是500M RES:常駐內存: 申請5

原创 C語言中文件操作

我們經常見到的文件寫入和讀取。 #include<iostream> using namespace std; typedef struct { char no[10]; char name[10]; double for