Unix操作系統(tǒng)設(shè)計(jì)錯(cuò)誤問題解決
在學(xué)習(xí)Unix操作系統(tǒng)的時(shí)候,我們會(huì)經(jīng)常遇到很多的問題。例如Unix操作系統(tǒng)中的設(shè)計(jì)錯(cuò)誤問題,對(duì)于Unix操作系統(tǒng)此程序中的錯(cuò)誤(設(shè)計(jì)錯(cuò)誤)我們?cè)撊绾谓鉀Q呢。就讓我們一起來(lái)學(xué)習(xí)吧!
我們知道到,在這個(gè)Unix操作系統(tǒng)源程序文件中,定義了兩個(gè)函數(shù):TestInput()和main(),定義了一個(gè)宏TESTOK,同時(shí)包含了兩個(gè)標(biāo)準(zhǔn)的頭文件。為了把這個(gè)C程序轉(zhuǎn)換成可執(zhí)行文件,在shell提示符下輸入:$cc myprog.c
在Unix操作系統(tǒng)程序中沒有任何語(yǔ)法錯(cuò)誤的情況下,cc將在當(dāng)前目錄下生成一個(gè)名為a.out的可執(zhí)行文件,如:
- $ cc myproc.c
- $ ls -l
- -rwx------ 1 yxz users 5812 Aug 31 15:32 a.out
- -rw------- 1 yxz users 716 Aug 31 15:27 myproc.c
- $
還可以看到這里a.out是一個(gè)可執(zhí)行文件。當(dāng)然這個(gè)程序由于在設(shè)計(jì)上有些失誤,我們現(xiàn)在還不能馬上就帶參數(shù)運(yùn)行。但不帶參數(shù)運(yùn)行還是可以的。只不過此時(shí)該程序什么都沒有干,如:$ a.out$
在程序中我們通過main函數(shù)的兩個(gè)參數(shù)argc和argv而使程序能夠引用shell命令行參數(shù);這是Unix操作系統(tǒng)環(huán)境下一種常用的編程技術(shù)。
在生成了a.out文件之后,我們自然可用mv命令將其修改為某個(gè)合適的名稱。但更簡(jiǎn)單的方法是在cc命令行中加上-o選項(xiàng),使cc直接將可執(zhí)行文件寫入到指定的文件中而不生成a.out文件,如:
- $ cc -o myprog myprog.c
- $ ls -l myprog
- total 14
- -rwx------ 1 yxz users 5812 Aug 31 15:34 myprog
- -rw------- 1 yxz users 716 Aug 31 15:27 myprog.c
- $
我們看到,Unix操作系統(tǒng)myprog這個(gè)文件除了文件名及修改時(shí)間同a.out不一樣外,其他屬性同a.out 都是一摸一樣的。這也說(shuō)明了兩者的等價(jià)性。
以上就是我們這次要講的關(guān)于Unix操作系統(tǒng)中的問題,希望對(duì)大家對(duì)Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。
【編輯推薦】