Android培訓班(10)

來源:互聯網
上載者:User

#022 

#023      /* clear the umask */

#024      umask(0);

在上面這段代碼裡,調用函數umask來設定屏蔽位為0值。這樣的意思是什麼呢?是告訴系統做了那些工作呢?要瞭解這個,就得深入查看一下linux函數大全了,因為它的作用就一目瞭然了,它的解釋如下:

linux中的 umask 函數主要用於:在建立新檔案或目錄時 屏蔽掉新檔案或目錄不應有的訪問允許許可權。檔案的訪問允許許可權共有9種,分別是:r w x r w x r w x(它們分別代表:使用者讀 使用者寫 使用者執行 組讀 組寫 組執行 其它讀 其它寫 其它執行)。

其實這個函數的作用,就是設定允許當前進程建立檔案或者目錄最大可操作的許可權,比如這裡設定為0,它的意思就是0取反再建立檔案時許可權相與,也就是:(~0) & mode 等於八進位的值0777 & mode了,這樣就是給後面的代碼調用函數mkdir給出最大的許可權,避免了建立目錄或檔案的許可權不確定性,指定明確的標誌,可謂是開發人員對代碼健壯性深刻的反映,高度明確性。

 

 

#025 

#026          /* Get the basic filesystem setup we need put

#027           * together in the initramdisk on / and then well

#028           * let the rc file figure out the rest.

#029           */

#030      mkdir("/dev", 0755);

#031      mkdir("/proc", 0755);

#032      mkdir("/sys", 0755);

在上面這段代碼裡,主要就是在當前記憶體類比磁碟裡建立一個基本的檔案系統,以便後面載入rc檔案來做其它事情。其中就是建立裝置目錄dev,進程檔案系統目錄proc,系統目錄sys。

 

/dev是devfs(裝置檔案系統)或者udev的掛在點所在。在使用devfs的核心裡如果沒有/dev,根本見不到Shell啟動的資訊,因為核心找不到/dev/console;在使用udev的系統裡,也事先需要在/dev下建立console和null這兩個節點。關於devfs和udev的區別,網上很多文章說。當然如果你的核心已經不支援devfs了(2.6.12以後),可以使用純純的靜態節點。也就是用mknod人工產生。

 

/proc是用來掛載存放系統資訊虛擬檔案系統——“proc檔案系統”,“proc檔案系統”在核心裡面可以選。如果沒有“proc檔案系統”,很多Shell自己的命令就沒有辦法運行,比如ifconfig。“proc檔案系統”不像devfs可以自動掛載,它需要使用初始化指令碼掛載。另外,udev也需要“proc檔案系統”的支援。

 

/sys用於掛載“sysfs檔案系統”,“sysfs檔案系統”在核心裡面可以選

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.