初次接觸linux
系統程式設計
一、背景
第一次接觸
linux
系統程式設計,先從最簡單的做起,首先探索一下
more
命令的實現方法。
more
命令使用起來並不複雜,先在命令列中輸入
more
,會得到下面的反饋資訊。
即more
的使用方法是
more+選項+
名稱。我在這裡先忽略掉選項,只實現
more
來分頁檢視檔案內容。(只是
more
最簡單的檢視檔案內容的功能)
二、實現過程
1.more的運作方式
想實現more
的功能,先看一下
more
的運作方式。在這裡拿
/etc/passwd
以作演示。檢視的過程這裡就不截圖了。首先如果檔案無法開啟的話(如果檔案有問題,
fopen
()函式會返回空指標。磁碟滿、檔名非法、訪問許可權不夠或者硬體問題都可能導致檔案打不開),必須要在螢幕標準輸出一段警告語來警告檔案無法開啟。如果檔案可以正常開啟,那麼
more
命令會首先顯示檔案的部分資訊,同時會給出乙個
more
的反白的字元並且後面跟有檢視的百分比。此時若輸入(1)
q:會退出檢視頁面(
2)空格:會顯示部分資訊(與第一次顯示的行數相同)(3)
enter
:會顯示一行資訊。
2.初次實現
第一次嘗試系統程式設計,對照more
的功能編出了這樣的程式。說起來不好意思,其中主函式
main
的顯示引數及其個數的用法我是第一次使用,之前在
c的學習中並未見過如此用法,可見自己真是疏於實踐了,這麼有用的東西之前都沒有掌握好,在這裡通過這個實踐很快就掌握其用法了。這段**的功能還很殘缺。幾個比較大的問題:
1.沒有提示
more
的反白醒目字型。2.在
q與space
鍵入後,必須按
enter
鍵才可以繼續執行命令。
3.enter
命令鍵入後存在問題:檔案資訊是隔行顯示的。
3.修正
這次修改新增了
more
的反白提示字。並且修正了之前的用
enter
鍵隔行顯示的
bug。新增反白提示字很簡單,只需要在
see_more
函式中新增一段**。而隔行顯示是因為在
more
函式中多了一行
else
命令,導致並未輸出接下來的一行而被下一行在
line
中取代了。
三、總結
這段程式使我對系統程式設計有了一點點的概念。就這種入門級的程式設計都耗費了我很多精力去編寫,因為**看上去都不是很難去理解,但自己去寫可真是漏洞百出,特別頭疼。而且最終寫出的程式還很不如人意,接下來還有許多東西要去學習來完善它。但與此同時,我也變得不像之前對linux
系統程式設計那樣感到望而生畏遙不可及了。只要沉下心學習,總會有所收穫。
Linux 系統程式設計
1 i o操作 2 檔案和目錄管理 3 記憶體管理 1 建立匿名記憶體對映 2 對映 dev zero檔案 類unix 作業系統中,dev zero是乙個特殊的檔案,當你讀它的時候,它會提供無限的空字元 null,ascii nul,0x00 其中的乙個典型用法是用它提供的字元流來覆蓋資訊,另乙個常...
Linux系統程式設計
1.linux程序 守護程序 脫離終端的後台程序 2.linux程序 殭屍程序 3.linux 下程序通訊 其中setsockopt server sockfd,sol socket,so reuseaddr,on,sizeof on 因為每乙個連線都由本地位址和遠端位址的組合唯一確定,所以只要遠端...
Linux之初次接觸命令
在windows中,大家一定用過諸如ipconfig指令查詢自己所使用電腦的ip位址,也可能用過ping指令測試自己網路的通暢性。除此之外呢?其他指令除專業人員真的是知之甚少。在linux下root使用者大約有3053條指令 終端中連續按兩次tab鍵會彈出提示 圖1 1 在圖1 1中 root lo...