freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

大學計算機專業(yè)-一種遠程管理linux系統(tǒng)工具的設計與實現(xiàn)設計與實現(xiàn)-wenkub.com

2024-11-29 17:00 本頁面
   

【正文】 刪除組:刪除組的操作大概過程和刪除用戶相似,也是在選 中 了要刪除 的組后,調(diào)用 group_selection_call_back()函數(shù),來把組的組名等信息存儲在一個全局變量中。組的操作的界面如圖 17所示 。 (2) 用戶組的操作:具有某種共同特征的用戶集合起來就是用戶組( Group)。 圖 16 用戶屬性界面 OK 按鈕所觸發(fā)的事件是 先 向 服務器發(fā)送一個“ property”字符串,然后 讀取文本框中的數(shù)據(jù),把這些數(shù)據(jù)一起發(fā)送給 服 務程序 。 再 接收服務程序發(fā)送過來的操作結果,顯示給用戶。 圖 15 添加用戶返回 刪除用戶: 選種了 列表中的 要 刪除的用戶 ,這個時候程序會調(diào)用selection_call_back()函數(shù)。讓服務器端通過傳遞過來的數(shù)據(jù)實現(xiàn) 添加用戶。 圖 13 用戶操作界面 添加用戶:當用戶按了添加 用戶按鈕后,就調(diào)用了 User_Add()函數(shù)對這個事件來響應。 圖 11 主界面的大概流程圖 主窗體 有 各 個功能模塊的操作頁面, 程序主界面如圖 12 所示 。 mainform(sock)。 text = gtk_entry_get_text((GtkEntry *)textbox)。不成功就返回到連接界面。這里就不詳細介紹了。 gtk_widget_show(table)。 gtk_widget_show(exitButt)。 gtk_signal_connect(GTK_OBJECT(mainWin), destroy, NULL, NULL)。 gtk_table_attach_defaults((GtkTable*)table,exitButt,0,2,2,3)。 text = gtk_entry_get_text((GtkEntry *)textbox)。 gtk_table_set_row_spacing(GTK_TABLE(table),1,10)。 main() gtk_init() CForm() 按下連接按鈕 sock() connect() 連接建立 TCP3 次握手 連接成功 否 是 主界面 clloButt = gtk_button_new_with_label(connect)。 mainWin = gtk_window_new(GTK_WINDOW_TOPLEVEL)。 void CForm(int *sock) { GtkWidget *exitButt,*clloButt,*clloLabl。命令行中傳遞過來的任何參數(shù),只要是它能識別的,都會從列表中刪除,并且修改 argc和 argv的值,就像這些參數(shù)從不存在一樣,然后應用程序分析剩余的參數(shù)。除了用 GTK 編寫界面以外還要用到 SOCK 編程來進行和 服務器端 的 TCP 連接的建立。 在模塊劃分方面。 在用戶界面方面,采用 GTK 編程來建立用戶界面,把實現(xiàn)的功能接口通過界面的方式 提供給 用戶 , 讓用戶來進行相關的操作。然后在讀取環(huán)境變量,然后向客戶程序發(fā)送操作結果。 查看錯誤日志操作,讀取錯誤日志中的數(shù)據(jù),在把數(shù)據(jù)發(fā)送到客戶程序。 Apache 服務停止、啟動和重啟操作是通過 exec 調(diào)用 Apache 停止、啟動和重啟的 shell 腳本來完成的。 添加 domian 操作 先 接收 客戶程序發(fā)送過來的數(shù)據(jù) (要添加的 domain 名, IP和 zone 名 ),然后 判斷 /var/named/chroot/etc/ 中是否有這個 zone存在,沒有就發(fā)送“ zone name is not exist”到客戶程序, 如果有 就得到其數(shù)據(jù)文件名字。 進入該模塊后,服務程序會接收一個客戶程序發(fā)送的數(shù)據(jù),該數(shù)據(jù)用來控制 DNS 模塊的流程 , 其流程如圖 7所示 。最后 再 判斷第 5 個字符,是 1 就 把文件 /etc//etc/。判斷 字符串的 第 1 個字符, 如果 是 1 的話就調(diào)用系統(tǒng)調(diào)用 link()把/etc/; 如果字符是 0就調(diào)用 unlink()取消 /etc/。 用戶 組操作的流程如圖 5所示 。然后打開/etc/group 文 件,讀取文件的數(shù)據(jù),當讀取的數(shù)據(jù)和發(fā)送過來的組名一樣,就把 str 復制到 temp 中 , 其它都把讀取的數(shù)據(jù)復制到 temp 中,關閉打開的文件。在打開文件 /etc/group 把 temp 的數(shù)據(jù)寫到文件中去, 最后把 str 寫入到文件中 ,關閉 文件,這樣 就 實現(xiàn)了 組的添加 。 etc/group 文件是用戶組的配置文件,內(nèi)容包括用戶和用戶組,并且能顯示出 用戶是歸屬哪個用戶組或哪幾個用戶組,因為一個用戶可以歸屬一個或多個不同的用戶組;同一用戶組的用戶之間具有相似的特征。 以 C語言 中流的操作打開 并且讀取 文件 /etc/passwd 的數(shù)據(jù) ,判斷讀取的數(shù)據(jù),當要 修改 的用戶名和讀取的用戶名一致時 把 str 數(shù)據(jù) 復制到 二 維數(shù)組 (temp);讀取用戶名和 修改的 用戶名 不一致時 就把讀取數(shù)據(jù) 復制 到 temp中。 用 C中流的操作打開文件 /etc/passwd,判斷讀取的數(shù)據(jù), 當要刪除的用戶名和 讀取的用戶名 一致 時 就不把這個用戶 信息 復制到 二維 數(shù)組 (temp); 讀取用戶名和 刪除用戶名不一樣就把讀取數(shù)據(jù) 復制到 temp 中 。 把客戶程序發(fā)送過來的 用戶 密碼用 MD5 算法 加密,把加密后的密碼和 用戶 其他 數(shù)據(jù)按照 /etc/passwd 的 格式 復制到 字符串變量 (str)中。 dnsconfig vsftpcon group_control() InitAction () Net_DNS_Config () Apache_Config () Ftp_Config () sysconfig apachecon group 程序入口 sock() bind() listen() accep() t() 一直阻塞到客戶連接到達 連接建立 TCP3 次握手 init_cli () user recv () 對字符 判斷 exit close () user_control() 字符串 判斷處理 圖 4 用戶操作流程 對 用戶的操作是添加、刪除和修改用戶, Linux 用戶都 是記錄在把 temp 的數(shù)據(jù)fputs()到文件 退出用戶操作到圖 3 的 recv() exit adduser scauser property fclose() fopen() 把 temp 中的數(shù)據(jù) fputs()到文件中 fputs(str) fopen() 是 否 否 是 把 temp 中的數(shù)據(jù) fputs()到文件中 把讀取數(shù)據(jù)存到 2 維數(shù)組 temp中 把 str存到 2維數(shù)組 temp 中 fclose() fopen() 相同 接收的字符和讀取字符 不同 否 為空 把讀取數(shù)據(jù)存到 2 維數(shù)組temp 中 fopen() fget() 為空 fopen() 把接受的數(shù)據(jù)格式化存儲在字符串 str 中 fclose() 把接受的數(shù)據(jù)格式化存儲在字符串 str 中 fopen() fget() user_control() recv() 字符 recv() recv() recv() fopen() fget() send() fget() 為空 相同 把讀取數(shù)據(jù)存到 2 維數(shù)組temp 中 接收的字符和讀取字符 不同 /etc/passwd 文件 中, 對用戶添加、刪除和修改都是 通過修改 /etc/passwd 文件來實現(xiàn)。 圖 3顯示了服務程序的流程, accept()是監(jiān)聽端口,等待客戶程序的 連接,連接建立好 后 init_cli()函數(shù)從配置文件讀 取 服務器的當前 配置文件 數(shù)據(jù),然后再 發(fā)送到客戶程序,讓客戶程序通過這些 數(shù)據(jù) 來初始化界面。采用 GTK 編寫 界面, 采用 Sock 編程實現(xiàn) 通信 。 (8)recv()函數(shù) 數(shù)據(jù)發(fā)送到接收端了后,就可以用 recv()函數(shù)來接收由發(fā)送端發(fā)送過來的數(shù)據(jù)了。 int close(int sockfd)。 這里需要指出的是參數(shù)的描述符為監(jiān)聽套接口,就是在等待連接的時候還沒有建立連接的套接口,而返回值是連接的 新的 套接口 。 本函數(shù)通常都是在調(diào)用 socket 和 bind 這兩個函數(shù)之后。 應用層協(xié)議 客戶應用程序 服務器應用程序 TCP TCP IP IP 以太網(wǎng)驅動 以太網(wǎng)驅動 以太網(wǎng)驅動 TCP 協(xié)議 IP 協(xié)議 以太網(wǎng)協(xié)議 第 2個參數(shù)是一個指向特定 協(xié)議的地址結構的指針, 第 3個參數(shù)是該地址結構 的 長度。 sockfd 是有 socket 函數(shù)返回的一個套接口描述符,第 2 個和第 3 個參數(shù)分別是一個指向套接口地址結構指針和結構的大小。函數(shù)調(diào)用成功時候返回一個非負的描述符。如果客戶和服務器處于同一 以太網(wǎng), 如圖 1所示 。 (2) Linux 線程 進程為線程提供了 運行 環(huán)境 ,多個函數(shù)可以同時運行,但是他們都是運行在相同的進程中的。 在使用 fork()函數(shù)創(chuàng)建進程的時候經(jīng)常 父進程等待子進程 結束。很多其他操作都提供了產(chǎn)生進程的機制 ,在新的進程空間中創(chuàng)建進程,讀取可 執(zhí)行文 件 。 這個系統(tǒng)調(diào)用會關閉進程和文件之間的連接。 這個系統(tǒng) 將 調(diào)用 buff的 數(shù) 據(jù)寫到文件中。 ? Linux 系統(tǒng) 讀取文件內(nèi)容通過系統(tǒng)調(diào)用 read()函數(shù)來實現(xiàn),函數(shù)原形 : ssize_t numread = read(int fd,void *buff,size_t qty)。 如何從文件中讀取數(shù)據(jù) Linux 文件讀取有兩種方法 : 一種 是通過 C 語言的 標準庫函數(shù) 調(diào)用 來 完成 ;另 一種是 通過對 Linux 的系統(tǒng)調(diào)用來完成。 3 Linux 系統(tǒng)調(diào)用 Linux 系統(tǒng)文件 在 Linux 中最主要的資源就是文件 , 很多設備都是以文件形式 存在的 , 所以大多數(shù) 輸入 /輸出都要通過文件讀寫來實現(xiàn)。 click_column:選中某一列時引發(fā) ,傳遞 信息 ,依次是 : GtkCList *clist、gint column。 與其他構件一樣, GtkCList有一些信號供我們使用。 GtkWidget *gtk_clist_new_with_titles(gint columns, gchar *titles[] )。每一列都可以有一個標題,而且可以是活動的, 還可以將函數(shù)綁定到列選擇上。 其中 child參數(shù)是放在筆記本 構件 上的子構件 , tab_label是要添加的頁面的標簽。用下面的函數(shù)可以創(chuàng)建新筆記本構件。 ( 6) 筆記本構件 GtkNotebook(筆記本構件 )是互相重疊的頁面集合,每一頁都包含不同的信息,且一次只有一個頁面是可見的。創(chuàng)建標簽構件后,要改變標簽內(nèi)的文本,用以下函數(shù): void gtk_label_set_text( GtkLabel *lacbel,char *str )。因為沒有相關聯(lián)的 X窗口,標簽構件不能引發(fā)信號。 為了在當前插入點插入文本,可以使用 gtk_text_insert函數(shù)。文本構件支持完全的剪切 /粘貼功能,還包括雙擊選擇一個單詞和單 擊選擇整行的功能。 可以用 gtk_button_new_with_label()創(chuàng)建帶標題的按鈕 。 用 gtk_table_new創(chuàng)建一個表格構件: GtkWidget *gtk_table_new( gint rows,gint columns,gint homogeneous)。GtkTable構件可以讓構件在一個表格上根據(jù)單元格定位 。 ( 2) 組裝 構件 組裝 構件通常是直接從 GtkContainer派生而來。 ( 1) GtkWindow 構件 GtkWindow構件是最大的容器 , 它實際就是一個窗體構件。 回調(diào)函數(shù)可以作如下聲明 : static gintbutton_press_callback( GtkWidget *widget, GdkEventButton *event, gpointer data)。要想知道哪一個事件已經(jīng)引發(fā),可以查看類型參數(shù),因為每個可能的可選事件都有一個反映引發(fā)事件的類型參數(shù)。 回調(diào) 函數(shù)也可以和這些 事件 連接起來應用。要讓一個按鈕執(zhí)行一個操作,我們需要 寫一 段信號處理程序,以捕獲它的信號,然后調(diào)用相應的 回調(diào)函數(shù) 。 GTK 是一個時間驅動工具包,它將在 gtk_main()函數(shù)中一直等待,
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1