日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux编程课后作业,Unix/Linux 编程实践教程第三章习题

發(fā)布時間:2023/12/15 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux编程课后作业,Unix/Linux 编程实践教程第三章习题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

tips: 答案僅供參考,不保證正確*

3.1

在我的 deepin 上,d_name 的長度是 256,有的系統(tǒng)定義成 1 是為了節(jié)省空間,使用時可以通過 malloc() 動態(tài)的分配空間,比如:

struct dirent

{

int len;

char a[0];

};

struct dirent *fun(char *str, int len)

{

struct dirent* n = (struct dirent*)malloc(len +1 + sizeof(struct dirent));

if (!n)

return NULL;

n->len = len;

memcpy(n->a, str, len);

return n;

}

擴展了 dirent 后,多出來的空間在 struct 的尾部,可以通過 char a[0] 直接訪問。這里使用的 char a[0] 相比于 char a[1] 更值得推薦,不會增加結構的 size,如果不需要可以不占用內存,此外 C99 之前 a 的長度必須是 1。定義成 char * 也可以,不過指針占用 sizeof(char *) 個字節(jié),而且指針在申請空間之后需要初始化。

3.2

經(jīng)過實驗,root 用戶可以讀

3.3

不會

3.4

為目錄設置set-group-ID位目的是方便團隊合作。舉個例子,user_one 的主組為 group_one,附加組為 group_two,有一個目錄 directory 的所屬組是 group_two,user_one 在 directory 中創(chuàng)建了一個新文件 file_one,如果不為 directory 目錄設置 set_group_ID 位,file_one 的所屬組將為 group_one,為了把它的所屬組改為 group_two,需要執(zhí)行 chgrp 命令,這樣無疑是繁瑣的。在為 directory 設置了 set_group_ID 位后,user_one 新創(chuàng)建的文件的所屬組將直接是 group_two。

3.5

實驗后的結論:一個純文本文件具有可執(zhí)行權限也不可以執(zhí)行,可執(zhí)行文件沒有可執(zhí)行權限也不可以執(zhí)行。file 命令可以顯示文件的類型,如 text、executable、data。

3.6

讓用戶在使用的時候記住自己的用戶 id 顯然是不合理的,可以類比域名和 IP 地址的關系,相比于 IP 地址,域名明顯更好記,用戶名和用戶 id 也一樣。如果使用名戶名來標識文件所有者,用戶可一旦想要更改自己的用戶名,那么就要把所有文件的信息都更新一遍,顯然是不合理的,而且用戶名可能會重復,這樣也就起不到標識的作用,對于計算機而言,使用用戶 id 節(jié)省空間,對于用戶而言,使用用戶名簡單好記,缺一不可。

3.7

getdents用于批量的讀取目錄項,有三個參數(shù),第一個參數(shù)是目錄的文件描述符,第二個參數(shù)是一個 buffer,用于存放讀取的數(shù)據(jù),第三個參數(shù)是 buffer 的大小。閱讀 getdents 的源代碼發(fā)現(xiàn)其調用了 vfs_readdir 函數(shù),該函數(shù)又調用了 readdir 函數(shù)。

3.8

通過命令

chmod u=rw ./test

更改權限后發(fā)現(xiàn) test 文件夾下的所有文件和目錄無法訪問,Linux 下,目錄也是一種文件,目錄的可執(zhí)行權限不是是否可以執(zhí)行,而是是否能夠進入目錄。一個只讀權限的目錄不運行 CD進入目錄,一個只有執(zhí)行權限的目錄可以進入但是不能看到目錄下的內容。

3.9

要獲取 login 的源代碼,首先通過

which loign

獲取 login 命令的位置,然后通過

dpkg -S /usr/bin/login

獲取其源代碼所在的包,最后通過

apt-get login

下載 login 的源代碼,其中改變終端文件所有者的函數(shù)大概可能也許是 setup_tty。

總結

以上是生活随笔為你收集整理的linux编程课后作业,Unix/Linux 编程实践教程第三章习题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。