初次接觸linux系統程式設計

2021-07-13 21:00:05 字數 1780 閱讀 9771

初次接觸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...