Linux中的幾個問題

2021-06-16 08:52:26 字數 1469 閱讀 8994

明天期末考試,就把往年試卷上的敘述題總結一下:

1.   如果乙個設定使用者id程式未執行任何改變程序的實際使用者id和有效使用者id的系統呼叫,那麼執行該程式的程序,它的實際使用者id和有效使用者id各是什麼?

答: 實際使用者id在登入時取自口令檔案中的登入項,如果沒有執行任何改變實際使用者id和有效使用者id的呼叫,那麼有效使用者id也就是實際使用者id。

2.   如果使用命令

man  -sx  kill

查閱系統呼叫kill的聯機文件,則命令中「x」代表的實際值是什麼?

答:對應於section的部分編號,一共有8個部分:

1 表示使用者命令和守護程序。

2 表示系統呼叫和核心服務。

3 表示子例程。

4 表示特殊檔案、裝置驅動程式和硬體。

5 表示配置檔案。

6 表示遊戲。

7 表示雜項命令。

8 表示管理命令和守護程序

3.   在讀寫磁碟檔案時,每次使用系統呼叫read和write是否都意味著讀寫磁碟驅動器? 為什麼?

答:不是,因為系統有緩衝,讀寫操作均與緩衝有關。

4.   在unix系統中,檔案空洞是什麼意思?

答:檔案空洞指當檔案偏移量大於檔案的長度時,對該檔案的寫將加長檔案,這樣便形成空洞。(p52) 

5.   在什麼情形下,產生的訊號是未決的(signal pending)?

答:在訊號產生和遞送之間的時間間隔內,稱訊號是未決的。如果在產生訊號時,呼叫程序正阻塞該訊號而不能遞送,則產生的訊號便是未決的。(p250,259) 

6.  早期的不可靠訊號機制主要有哪些特點?

答:訊號可能丟失,而且在執行臨界區**時,程序很難關閉所選擇的訊號。(p243)  

8.   如果程序p建立程序q,程序q建立程序r,那麼當程序q在程序p和程序r之前結束,那麼程序r的父程序是誰? 程序r是否可能變成殭屍程序?

答:程序r的父程序是init程序,不會變成殭屍程序。(p179)

9.   程式設計師能否根據程序的實際使用者id來判斷它們是否有訪問檔案的相應許可權(請簡要說明理由)?

答:不能,判斷是否有訪問檔案的相應許可權是根據使用者的有效使用者id及其附加組id,而與實際使用者id無關。(p75) 

10.  為什麼posix.1要求system函式阻塞sigint和sigquit訊號?

答:因為由system執行的命令可能是互動式命令,以及因為system的呼叫者在程式執行時放棄了控制,等待該執行程式的結束,所以system的呼叫者就不應接受這兩個終端產生的訊號。

11.   設定-使用者-id(suid)和儲存的設定-使用者-id(ssuid)是如何產生的?各自的意義是什麼?

答:suid是為了讓執行程式的使用者擁有檔案所有者的許可權而產生的,而ssuid是為了解決執行該程式的許可權與擁有改程式使用者的許可權之間的切換。suid是為了讓執行程式使用者與程式檔案所有者一樣的許可權執行程式,ssuid是為了在設定使用者id之前,儲存程式的有效使用者,以備將來把有效使用者id恢復。

boost log 中的幾個問題

boost 日誌示例中有乙個錯誤 下面這個檔案 應該在開頭加一行 include 否則會出下列錯錯誤 error c2027 使用了未定義型別 boost log v2s mt nt5 expressions aux date time formatter generator traits d li...

MS SQL中的幾個問題

1,儲存過程中用到的 n 的意義.n的作用就是如果你的作業系統是簡體中文,你在n後面的單引號裡輸入了日本 德文 法文什麼的,能保證你的字串是正確的,這時n就要必寫 反之如果n後面的單引號裡只有英文和簡體中文 長度不能超過十幾k 那這個n寫與不寫是一樣的。上面的解釋和你所看到是同乙個意思,簡單的可以認...

幾個問題的

1.寫乙個函式返回引數二進位制中 1 的個數 比如 15 0000 1111 4 個 1 程式原型 int count one bits unsigned int value 解 無符號整型為32位,所以利用迴圈32次,逐個判斷二進位制每一位是不是1 int count one bits unsig...