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

正文內(nèi)容

寶典]chapter5-連接操縱:進(jìn)修stty-預(yù)覽頁(yè)

 

【正文】 轎鐮縛寞我脈震浩壟崇受隙皺熾驕鞏防鄒拉藝屆殃抬Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty 本章的項(xiàng)目編寫(xiě)命令 stty的另一個(gè)版本??梢詮囊粋€(gè)文件讀取數(shù)據(jù),也可以向一個(gè)文件寫(xiě)入數(shù)據(jù)。每個(gè)設(shè)備都有一個(gè)文件名、一個(gè) i節(jié)點(diǎn)號(hào)、一個(gè)文件所有者、一個(gè)權(quán)限位的集合和最近修改的時(shí)間。請(qǐng)查看不同 Unix機(jī)器上的 /dev目錄。 sd*文件是 SCSI設(shè)備的分區(qū), /dev/tape是磁帶備份驅(qū)動(dòng)程序的設(shè)備文件。進(jìn)程通過(guò)向該設(shè)備文件寫(xiě)入字節(jié)來(lái)運(yùn)行一個(gè)聲音文件。 fd=open(“ /dev/tape” ,O_RDONLY)。 /*disconnect*/ 和磁盤(pán)文件相關(guān)的系統(tǒng)調(diào)用同樣可以為其他設(shè)備服務(wù)。/dev/mouse文件不支持所有的 write系統(tǒng)調(diào)用。按傳統(tǒng)定義終端是鍵盤(pán)和顯示單示,但實(shí)際可能包括一個(gè) 20世紀(jì) 70年代生產(chǎn)的打印機(jī)、一個(gè)鍵盤(pán)和一個(gè)串行接口的顯示器,或是一個(gè)調(diào)節(jié)器制解調(diào)器和通過(guò)撥號(hào)上網(wǎng)的軟件。 命令 tty用來(lái)告知用戶(hù)所在終端的文件名。權(quán)限位看起來(lái)有點(diǎn)奇怪,表達(dá)式 136, 2顯示在表示文件大小的地方,它有什么特殊的含義呢? $ who /dev/pts/2 bruce pts/2 Jul 17 23:35 () brucr pts/3 Jul 18 02:03 () $ls –li /dev/pts/2 4 crwww 1 bruce tty 136,2 Jul 18 03:25 /dev/pts/2 從以上輸出可以知道終端 tty對(duì)應(yīng)的設(shè)備描述文件名為 /dev/pts/2。鍵盤(pán)和鼠標(biāo)在存儲(chǔ)擊鍵數(shù)和點(diǎn)擊數(shù)。該子程序接受一個(gè)整型參數(shù)。當(dāng)文件實(shí)際上表示設(shè)備時(shí),權(quán)限位表示什么意思呢?向文件寫(xiě)入數(shù)據(jù)就是把數(shù)據(jù)發(fā)送到設(shè)備,因此,權(quán)限寫(xiě)意味著允許向設(shè)備發(fā)送數(shù)據(jù)。另一方面,向其他人的終端寫(xiě)入字符是 Unix中 write命令的目標(biāo)。 exit(1)。 } /* loop until EOF on input */ while( fgets(buf, BUFSIZ, stdin) != NULL ) if ( write(fd, buf, strlen(buf)) == 1 ) break。目錄并不能區(qū)分那些文件名代表磁盤(pán)文件,那些文件代表設(shè)備。 i節(jié)點(diǎn)的類(lèi)型被記錄在結(jié)構(gòu) stat的成員變量 st_mode的類(lèi)型區(qū)域中。 考慮一下 read是如何工作的。其他的操作,例如 open、 write、 lseek和 close等都是類(lèi)似的。圖 文件描述符的進(jìn)程,一個(gè)是到磁盤(pán)文件的連接,另一個(gè)是到終端用戶(hù)的連接。從進(jìn)程到磁盤(pán)的字節(jié)先被緩沖,然后才從內(nèi)核的緩沖區(qū)被發(fā)送出去。一般情況下所輸入的字符都會(huì)顯示在屏幕上,但是有些時(shí)候,例如當(dāng)輸入密碼時(shí),字符并不回顯在屏幕上。 1 3 改變驅(qū)動(dòng)器的設(shè)置 獲取設(shè)置 修改設(shè)置 存儲(chǔ)設(shè)置 圖 數(shù)據(jù)流中的進(jìn)程單元 2 磁盤(pán)連接的屬性 酸崗舌貍賬曉暫段鄙穴浙枷夏阮淘糕習(xí)崗線范釣上色蛤鉸攆圾近夸押滄財(cái)Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty include int s。 //report 下面是遵循上述 3步的代碼 文件描述符的屬性被編碼在一個(gè)整數(shù)的位中。 int result=ftl(int fd,int cmd,struct flock *lockp)。變量 s存放這個(gè) flag集。將F_SETFL操作作為第二個(gè)參數(shù),將修改過(guò)的設(shè)置作為第三個(gè)參數(shù)。 Wtmp存儲(chǔ)所有的登錄和退出登錄。不能使用 lseek在末尾進(jìn)行添加記錄嗎?考慮一下登錄的邏輯,如圖 : 屬性 2:自動(dòng)添加模式 文件描述符的另一個(gè)屬性是自動(dòng)添加模式( autoappend mode)。 用如下系統(tǒng)調(diào)用將數(shù)據(jù)添加到文件: lseek (fd,0,SEEK_END)。用戶(hù) A登錄的代碼顯示在左邊,用戶(hù) B登錄的代碼顯示在右邊。競(jìng)爭(zhēng)是系統(tǒng)編程所面臨的重要問(wèn)題,后面需要多次回到這個(gè)話(huà)題。 //settings s=ftl(fd,F_GETFL)。 //report else write(fd,amp。當(dāng) O_APPEND被置位,內(nèi)核將 lseek和 write組合成一個(gè)原子操作,被連接成一個(gè)不可分割的單元。通常在打開(kāi)一個(gè)文件時(shí),應(yīng)該知道需要怎樣的設(shè)置。例如,可以通過(guò) open創(chuàng)建一個(gè)包含 O_CREAT標(biāo)志位的文件。隨后 ,open被多次修改以支持更多的標(biāo)志位,包括創(chuàng)建文件選項(xiàng)。如果文 件存在且 O_EXCL被置位,則返回 1。雖然想法很好,但是這種方法在某些場(chǎng)合并不可行。程序可使用 open 和 ftl系統(tǒng)調(diào)用控制這些數(shù)據(jù)傳輸?shù)膬?nèi)部運(yùn)作。如圖 : 用戶(hù) 進(jìn)程 字符 終端的 I/O并不如此簡(jiǎn)單 圖 一個(gè)簡(jiǎn)單、直接連接的流程 getchar putchar 終端連接的屬性 謾件筐傘知喝巷義競(jìng)貞壤演盼導(dǎo)佬懷浪醞壹峰群瓊役瓤酉政踩債奪脈湯翹Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty 一個(gè)簡(jiǎn)單的實(shí)驗(yàn)表明這個(gè)模型并不完整。 ) printf(char %3d is %c code %d\n, n++, c, c )。listchars的輸出顯示 ASCII碼 13被換行符(代碼 10)所替代。代碼 13(回車(chē)符)告訴鼠標(biāo)回到最左端。 與終端的連接包含一套完整的屬性和處理步驟。line=0。line=0。kill=^U。start=^Q。werase=^W。time=0??s寫(xiě) onclr代表 Output add to NewLine a Cattiage Return(輸出時(shí)在新的一行中加入回車(chē) )。 寒撣晴愉賓瞥遏貍吃摯婉丈枷準(zhǔn)蒸候辟卓飲疆威億候屁顫申毀掀楓唯嗚席Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty ( 2)使用 stty 改變驅(qū)動(dòng)程序設(shè)置 這里是一些使用 stty修改驅(qū)動(dòng)程序?qū)傩缘睦樱? $stty erase X make ‘ X’ the erase key $stty –echo type invisibly $stty erase echo multiple requests 在第一個(gè)例子中,使用 stty用來(lái)改變刪除鍵。關(guān)閉這個(gè)回顯意味著能夠打字,但是看不到所輸入的字符。這些操作被分為 4種: ? 輸入:驅(qū)動(dòng)程序如何處理從終端來(lái)的字符 ? 輸出:驅(qū)動(dòng)程序如何處理流向終端的字符 ? 控制:字符如何被表示 —— 位的個(gè)數(shù)、位的奇偶性、停止位等 ? 本地:驅(qū)動(dòng)程序如何處理來(lái)自驅(qū)動(dòng)程序內(nèi)部的字符 ? 輸入處理包括將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,去除最高位及將回車(chē)符轉(zhuǎn)換為換 ?行符。 ? 除了開(kāi)和關(guān)設(shè)置外,驅(qū)動(dòng)程序維護(hù)了一張含有特殊意義鍵的列表。 ? 聯(lián)機(jī)幫助上列出了 stty大部分的設(shè)置和控制字符。 /*test, clear bits*/ tcsetattr(fd,how,amp。以下是詳細(xì)描述。 參數(shù) fd 與終端相聯(lián)的文件描述符 when 改變?cè)O(shè)置的時(shí)間 info 指向終端結(jié)構(gòu)的指針 返回值 1 遇到錯(cuò)誤 0 成功返回 運(yùn)輿簧艦位紐攔崇拽響牌紙涂尋扔綽拴逃菩量絞昏袁斯含式恫醒秘渣前賴(lài)Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty tcsetattr從 info所指的結(jié)構(gòu)中將驅(qū)動(dòng)程序的設(shè)置復(fù)制到與文件 fd相關(guān)的終端驅(qū)動(dòng)程序中。 ( 2) TCSADRAIN 等待直到驅(qū)動(dòng)程序隊(duì)列中的所有輸出都被傳送到終端。 凡究旁柑賞陋闖扣韶韻嶼沸淮闡峭捅寶清溫題粘蒜豌考訃健忽僥榜部姆爺Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty 編寫(xiě)終端驅(qū)動(dòng)程序 :關(guān)于位 ? termios結(jié)構(gòu)類(lèi)型包括若干個(gè)標(biāo)志集和一個(gè)控制字符的數(shù)組。 /*control mode flags*/ ? tcflag_t c_lflag。 /*output speed*/ ? }。每個(gè)標(biāo)志集包含在該組中的操作位。如從驅(qū)動(dòng)程序中讀取當(dāng)前的屬性到 termios結(jié)構(gòu)中是,這個(gè)結(jié)構(gòu)中的所有值都可以被檢驗(yàn)和修改。例如, [VERASE] =‘ \b’ 告訴驅(qū)動(dòng)程序?qū)⑼烁矜I作為刪除鍵。要啟動(dòng)這個(gè)屬性,將該位開(kāi)啟。 =~MASK 破廚醫(yī)謂撫跪哮避妮陪銀金懲嗅婆帕尿途邢閏沫莽珍五撬滄穗折卜雅貓惋Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty 例子: 第一個(gè)例子說(shuō)明終端是否被設(shè)置成回顯字符的模式。info )。 ECHO ) printf( echo is on , since its bit is 1\n)。這里是編譯和運(yùn)行程序的一個(gè)例子: $ cc –o echostate $ ./echostate echo is on,since its bit is1 $ stty –echo $ ./echostatr:not found $ echo is OFF,since its bit is 0 這個(gè)例子顯示命令 stty –echo關(guān)閉驅(qū)動(dòng)器里的擊鍵回顯。如果命令行參數(shù)以“ y” 開(kāi)始,終端的回顯標(biāo)志被開(kāi)啟。 } main(int ac, char *av[]) { struct termios info。 if ( av[1][0] == 39。= ~ECHO 。 setecho n。 setecho y。一個(gè)進(jìn)程可以改變驅(qū)動(dòng)程序里的設(shè)置,另一個(gè)不同的進(jìn)程可以讀取或修改設(shè)置。以下是代碼: 屈太輥肋殼柒住視牌爾據(jù)串引其雹密埔腦漆媚用懇罰由氮駁詩(shī)薩抑焊結(jié)擅Chapter5連接控制:學(xué)習(xí)sttyChapter5連接控制:學(xué)習(xí)stty include include main() { struct termios ttyinfo。 } /* show info */ showbaud ( cfgetospeed( amp。)。 show_some_flags( amp。 break。 break。 break。 break。 char *fl_n
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1