




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、P OSIX標(biāo)準(zhǔn)理解POSIX標(biāo)準(zhǔn)總體分析POSIX,全稱(chēng)為可移植性操作系統(tǒng)接口,是一種關(guān)于信息技術(shù)的IEEE標(biāo)準(zhǔn)。它包括了系統(tǒng)應(yīng)用程序接口(簡(jiǎn)稱(chēng) API),以及實(shí)時(shí)擴(kuò)展C語(yǔ)言。該標(biāo)準(zhǔn)的目的是定義了標(biāo)準(zhǔn)的基于 UNIX操作系統(tǒng)的系統(tǒng)接口和環(huán)境來(lái)支持源代碼級(jí)的可移植性。現(xiàn)在,標(biāo)準(zhǔn)主要提供了依賴C語(yǔ)言的一系列標(biāo)準(zhǔn)服務(wù),再將來(lái)的版本中,標(biāo)準(zhǔn)將致力于提供基于不同語(yǔ)言的規(guī)范。該標(biāo)準(zhǔn)對(duì)核心需求部分定義了一系列任何編程語(yǔ)言都通用的服務(wù),這一部分服務(wù)主要從其功能需求方面闡述, 而非定義依賴于編程語(yǔ)言的接口。兩部分組成。 一部分包括了訪問(wèn)核心服務(wù)的編程語(yǔ)言的標(biāo)準(zhǔn)接口,語(yǔ)言規(guī)范主要有這些核心服務(wù)為標(biāo)準(zhǔn)中基于編程語(yǔ)
2、言的核心需求部分所定義; 另一部分包含了一個(gè)特殊語(yǔ)言服 務(wù)的標(biāo)準(zhǔn)接口。 基于任何語(yǔ)言, 與該標(biāo)準(zhǔn)一致的執(zhí)行都必須遵循語(yǔ)言規(guī)范的任何章節(jié)。該標(biāo)準(zhǔn)一共被分為四個(gè)部分:1)陳述的范圍和一系列標(biāo)準(zhǔn)參考(第一章);2)3)定義和總概念;各種接口設(shè)備;第二章)第三章到第九章,第十一章到第十五章)( 4)數(shù)據(jù)交換格式;該標(biāo)準(zhǔn)的主要目的有:第十章)面向應(yīng)用定義接口,而不是它的具體實(shí)現(xiàn);3)涉及資源和可移植性,而非對(duì)象;4)5)基于 c 語(yǔ)言;無(wú)超級(jí)用戶,無(wú)系統(tǒng)管理;6)最小限度的接口,最小限度的定義;應(yīng)用領(lǐng)域廣泛;對(duì)以前的實(shí)現(xiàn)進(jìn)行最小限度改變;對(duì)原有程序代碼做最小的修改;10)實(shí)時(shí)擴(kuò)展;以下就對(duì)各個(gè)章節(jié)做簡(jiǎn)要
3、分析。第一章概述11 范圍 定義范圍的關(guān)鍵要素有:1)定義足夠的一套功能適用于實(shí)時(shí)應(yīng)用程序領(lǐng)域的重要部分;2)定義足夠的實(shí)現(xiàn)規(guī)范和性能相關(guān)的函數(shù),以便允許實(shí)時(shí)應(yīng)用程序完成系統(tǒng)的確定性的響應(yīng);12 一致性 系統(tǒng)須支持標(biāo)準(zhǔn)中定義的接口,系統(tǒng)能夠提供標(biāo)準(zhǔn)中沒(méi)有要求到的函數(shù)和工具。在遵循于該標(biāo)準(zhǔn)的實(shí)現(xiàn)中, 一種一致性文檔是需要用到的, 它必須具有與該標(biāo)準(zhǔn) 相同的結(jié)構(gòu),包含有全名,數(shù)字,和標(biāo)準(zhǔn)所指示的日期,以及頭文件 <limits.h>和 <unistd.h> 中的界限值等等。該一致性文檔詳細(xì)說(shuō)明了標(biāo)準(zhǔn)中定義的執(zhí)行行 為。該標(biāo)準(zhǔn)要求了應(yīng)用程序的一致性,所有遵循標(biāo)準(zhǔn)的應(yīng)用程序都使
4、用基于 c語(yǔ)言的服務(wù)。第二章術(shù)語(yǔ)和基本需求21 定義1)術(shù)語(yǔ)該標(biāo)準(zhǔn)中定義了一系列術(shù)語(yǔ),如一致性文檔,被定義的實(shí)現(xiàn),可能性,無(wú)用的特 性等,還定義了一些通用名詞,如絕對(duì)路徑,存取模式,地址空間,適當(dāng)權(quán)限, 定時(shí)器,異步 I/O 操作,后臺(tái)進(jìn)程,后臺(tái)進(jìn)程組,塊文件,阻塞進(jìn)程,等等。基本概念擴(kuò)展安全控制;文件存取允許;文件級(jí)別;文件名可移植性;路徑名的決定;3)錯(cuò)誤號(hào)大部分函數(shù)都在外部變量 errno 中提供了錯(cuò)誤號(hào),定義如下:extern int errno;4)簡(jiǎn)單系統(tǒng)的數(shù)據(jù)類(lèi)型這些數(shù)據(jù)類(lèi)型在頭文件 <sys/types.h> 中定義,它包含了至少以下類(lèi)型:dev_t:用于設(shè)備號(hào);g
5、id_t:用于進(jìn)程標(biāo)志符;ino_t:用于文件序列號(hào);inode_t:用于一些文件參數(shù);nlink_t:用于連接內(nèi)容;off_t:用于文件大?。籶id_t:用于進(jìn)程或進(jìn)程組標(biāo)志符;size_t:在 c 標(biāo)準(zhǔn)( 2)中定義;ssize_t:用于返回字節(jié)數(shù)和錯(cuò)誤標(biāo)志的函數(shù);uid_t:用于用戶標(biāo)志符;5)環(huán)境描述當(dāng)一個(gè)進(jìn)程開(kāi)始執(zhí)行時(shí), 將調(diào)用一個(gè)表示環(huán)境的字符串?dāng)?shù)組, 這個(gè)數(shù)組為外部變 量 environ 所指向,其定義如下:extern char *environ;6)其他在該章中, 標(biāo)準(zhǔn)還總體介紹了 c 語(yǔ)言定義的一些標(biāo)志符, 數(shù)字方面的限制, 以及 一些符號(hào)常量,這些在以后的章節(jié)中都會(huì)一一出
6、現(xiàn)。以下是osEK務(wù)的簡(jiǎn)要設(shè)計(jì)描述的一個(gè)清單。這些要求詳細(xì)敘述在POSIX規(guī)范書(shū)中。進(jìn)程源語(yǔ) 進(jìn)程源語(yǔ)所涉及的函數(shù)完成了大多數(shù)簡(jiǎn)單的操作系統(tǒng)服務(wù), 如進(jìn)程處理, 進(jìn)程信 號(hào),以及定時(shí)器。一般情況下, 該標(biāo)準(zhǔn)所確定的進(jìn)程的所有屬性都不能被一個(gè)進(jìn) 程源語(yǔ)改變,除非描述符特別指明。進(jìn)程環(huán)境目錄與文件 目錄與文件所涉及的函數(shù)執(zhí)行了一系列操作系統(tǒng)服務(wù),例如文件的創(chuàng)建和刪除, 檢測(cè),修改特性。它們提供了主要的方法,進(jìn)程因?yàn)橐幌盗?I/O 操作使用他們 來(lái)存取文件和目錄。輸入輸出原語(yǔ)這些子文件和管道函數(shù)處理輸入和輸出。功能被指定為進(jìn)行文件描述符管理 和 I/O 活動(dòng)之間得平衡調(diào)節(jié)。設(shè)備驅(qū)動(dòng)和分類(lèi)函數(shù)該章節(jié)描
7、述了一個(gè)基本的終端接口和一些基本的終端控制函數(shù),如果執(zhí)行時(shí) 被提供,所有的異步通信端口都應(yīng)該支持它, 接口是支持網(wǎng)絡(luò)連接還是異步端口 或者兩者都支持由完成者定義, 一致性文檔應(yīng)該描述那些設(shè)備類(lèi)型被這些接口所 支持。本章的一些函數(shù)主要應(yīng)用與進(jìn)程的控制終端基于 c 語(yǔ)言得服務(wù)系統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)交換格式異步內(nèi)存管理執(zhí)行調(diào)度時(shí)鐘和定時(shí)器消息傳遞第三章進(jìn)程原語(yǔ)31 進(jìn)程的創(chuàng)建和執(zhí)行1進(jìn)程創(chuàng)建 程映像,這個(gè)新的進(jìn)程映像創(chuàng)建于一個(gè)規(guī)則的, 可執(zhí)行文件,叫做新進(jìn)程映像文 件。執(zhí)行成功無(wú)返回值因?yàn)檎{(diào)用進(jìn)程映像以為新的進(jìn)程映像所覆蓋。函數(shù)原型: pid_tfork (void)函數(shù)功能:調(diào)用時(shí)需要引用的頭文件是 &l
8、t;sys/types.h>,fork()創(chuàng)建了一個(gè)新的進(jìn)程。2執(zhí)行一個(gè)文件函數(shù)原型: int exec1(const char *path, const char *arg,);int execv(const char *path, const *char argv );int execle(const char *path, const char *arg,);int execve(const char *path, const *char argv, char *const envp)int execlp(const char *file, const char *arg. );i
9、nt execvp(const char *file, char *const argv);函數(shù)功能: exec 系列的函數(shù)用一個(gè)新的進(jìn)程映像替代了當(dāng)前的進(jìn)3.2 進(jìn)程的終止 進(jìn)程的終止有兩種情況:(1)從main()函數(shù)返回時(shí)或者執(zhí)行exit()或_exit()函數(shù)時(shí)正常的終止;(2)被abort()函數(shù)請(qǐng)求或者接受到一些信號(hào)時(shí)不正常的終止;1. 等待進(jìn)程終止函數(shù)原型:#in cludevsys/t yp es.h>#in cludevsys/wait.hpid_t wait(i nt *stat_loc);p id_t wait pid( pid_t pi d,i nt *stat_
10、loc.i nt op ti on s);函數(shù)功能:wait ()和waitpid ()允許調(diào)用進(jìn)程獲得它的一個(gè)子進(jìn)程的狀態(tài)信息。Wait()函數(shù)將掛起調(diào)用進(jìn)程直到獲得了它的子進(jìn)程的狀態(tài)信息,或者是直到獲得一個(gè)終止進(jìn)程信號(hào);如果 pid = 1并且options=0 , waitpid()函數(shù)功能將和wait pi d()相同,否則它的功能將依據(jù) pid和op tio ns的值而改變。 終止一個(gè)進(jìn)程2.函數(shù)原型:void_exit( int status);函數(shù)功能:_exit()函數(shù)將終止一個(gè)調(diào)用進(jìn)程,該函數(shù)不能返回給其調(diào)用3.3信號(hào)在頭文件vsignal.h終聲明了 sigset_t類(lèi)型和
11、sigaction 結(jié)構(gòu)。完成所定義的信號(hào)分三類(lèi):必需的信號(hào);任務(wù)控制信號(hào);內(nèi)存保護(hù)信號(hào),分別如下表:必需信號(hào)符號(hào)常量描述1pIGABRT非正常終止信號(hào)SiGALRM超時(shí)信號(hào)SIGF PE錯(cuò)誤運(yùn)算操作Sighu P為控制中斷所檢測(cè)到的掛斷Sigill無(wú)效硬件信號(hào)的檢測(cè)SiGINT交互式信號(hào)Sigkill終止信號(hào)Sig pipe寫(xiě)信號(hào)SIGQUIT交互式終止信號(hào)SIGSEGV無(wú)效內(nèi)存引用檢測(cè)信號(hào)SIGTERM終止信號(hào)S1GUSRI保留信號(hào)S1GUSR2保留信號(hào)作業(yè)控制信號(hào)符號(hào)常量描述SIGCHLD子進(jìn)程終止或停止SIGCONT停止后繼續(xù)SIGST 0P停止信號(hào)SIGTST P交互式的停止信號(hào)SI
12、GTTIN從控制終端讀pIGTTOU寫(xiě)到控制終端內(nèi)存保護(hù)信號(hào)符號(hào)常量描述SIGBUS獲取內(nèi)存中不確定的部分每一個(gè)進(jìn)程有一個(gè)進(jìn)程標(biāo)記(P rocess mask),它定義了一組產(chǎn)生但被阻塞傳遞的信號(hào)集。Sigacti on (), sig pro mask (), sigsus pend () 函數(shù)控制這個(gè)進(jìn)程標(biāo)記的行為。1. 送一個(gè)信號(hào)到進(jìn)程函數(shù)原型:#in elude <sys/t yp es.h>#in cludevsig nal.h> int kill( pid_t pid, int sig)函數(shù)功能:該函數(shù)發(fā)送一個(gè)信號(hào)到一個(gè)由 pid 指明的進(jìn)程或者進(jìn)程組, sig
13、標(biāo)志 了信號(hào)類(lèi)型,其值是 0 或者上表中的值。如果發(fā)送成功,返回 0',否則返回1'。2. 操縱信號(hào)集函數(shù)原型: #include<signal.h>int sigemptyset(sigset_t *set);int sigfillset(sigset_t *set);int sigaddset(sigset_t *set, int signo);int sigdelset(sigset_t *set, int signo);int sigisemeber(const sigset_t *set,int signo);函數(shù)功能: sigsetops 源語(yǔ)操縱信號(hào)集
14、。他們操作以數(shù)字為對(duì)象,這些數(shù)據(jù)由應(yīng)用程序的地址所指向,而不是以系統(tǒng)所知的信號(hào)集為對(duì)象。3. 檢測(cè)和更改信號(hào)的行為函數(shù)原型: #include<signal.h>int sigaction(int sig,const struct sigaction *act,structsigaction *oact);函數(shù)功能:該函數(shù)允許調(diào)用函數(shù)檢查與確定的信號(hào)相聯(lián)系的行為,參數(shù) sig 確定了信號(hào), sigaction 結(jié)構(gòu)在頭文件 <signal.h> 中被定義,描述了所采取的行為。如果參數(shù) act 不為 null, 它指向一個(gè)結(jié)構(gòu),它指定了與信號(hào)相聯(lián)系的行為。如果參數(shù) oac
15、t 不為 null ,先前與信號(hào)相聯(lián)系的行為將被存儲(chǔ)到由oact指向的地方。4. 檢查和改變阻塞信號(hào)函數(shù)原型: #include<signal.h>int sigprocmask(int how,xonst sigset_t *set,sigset_t *oset);函數(shù)功能:該函數(shù)用來(lái)檢查和改變調(diào)用進(jìn)程的信號(hào)標(biāo)記( signal mask ),如果參數(shù) set 不為 null ,它指向一個(gè)信號(hào)集的用于改變當(dāng)前的阻塞集。參數(shù)how指明了改變方式, 參數(shù) oset 不為 null 時(shí),先前的信號(hào)標(biāo)記被存儲(chǔ)在它所指向的不能隨函數(shù)調(diào)用而改變。地方,如果參數(shù)set為null,則參數(shù)how就
16、沒(méi)有意義了,而且進(jìn)程的信號(hào)標(biāo)記5. 檢查未定的信號(hào)函數(shù)原型: #include<signal.h>int sigpending(sigset_t *set);函數(shù)功能: 該函數(shù)存儲(chǔ)一個(gè)信號(hào)集, 這些信號(hào)是在被調(diào)用進(jìn)程傳輸和未定的情 況下阻塞的,由參數(shù) set 所指向。6. 等待一個(gè)信號(hào)函數(shù)原型: #include<signal.h>int sigsuspend(const sigset_t *sigmask);函數(shù)功能:該函數(shù)用參數(shù) sigmask 所指向的信號(hào)集取代了進(jìn)程信號(hào)標(biāo)記signal mask ),然后掛起該進(jìn)程直到接受到一個(gè)信號(hào),其行為是執(zhí)行信號(hào)跟 蹤功能或
17、者是終止該進(jìn)程。7. 同步接受一個(gè)信號(hào)函數(shù)原型: #include<signal.h>int sigwaitinfo(const sigset_t *set, siginfo_t *info);int sigtimedwait(const sigset_t *set,siginfo_ *info, conststruct timespec *timeout );函數(shù)功能: 該函數(shù)從參數(shù) set 所確定的信號(hào)集中選擇一個(gè)未定的信號(hào)出來(lái)。 如果該函數(shù)成功,返回一個(gè)信號(hào)數(shù);否則返回1。8. 排隊(duì)一個(gè)信號(hào)到進(jìn)程函數(shù)原型: #include<signal.h>int sigque
18、ue(pid_t pid,int signo, const union sigval value);函數(shù)功能:該函數(shù)功能是使由 signo 確定的信號(hào)將參數(shù) value 所確定的值發(fā)送 到由 pid 指明的進(jìn)程中去。3.4 定時(shí)器操作1調(diào)度警報(bào)函數(shù)原型: unsigned int alarm(unsigned int seconds);函數(shù)功能:當(dāng)參數(shù) seconds 指定的一段實(shí)時(shí)時(shí)間過(guò)去后, 該函數(shù)將發(fā)送個(gè)SIGALRM信號(hào)到調(diào)用進(jìn)程。2. 掛起進(jìn)程的執(zhí)行函數(shù)原型: int pause(void);函數(shù)功能: 該函數(shù)掛起一個(gè)調(diào)用進(jìn)程直到得到一個(gè)信號(hào), 這個(gè)信號(hào)或者執(zhí)行信號(hào)跟蹤功能或者是終止
19、該進(jìn)程。 如果是終止進(jìn)程, 該函數(shù)不返回; 如果是執(zhí) 行信號(hào)跟蹤功能,則該函數(shù)在信號(hào)跟蹤函數(shù)返回后也要返回。3. 延遲進(jìn)程的執(zhí)行函數(shù)原型: unsigned int sleep(unsigned int seconds); 函數(shù)功能:該函數(shù)使當(dāng)前進(jìn)程從執(zhí)行狀態(tài)轉(zhuǎn)化為掛起狀態(tài),直到參數(shù) seconds所指定的一段實(shí)時(shí)時(shí)間過(guò)去后, 或者是一個(gè)喚醒信號(hào)跟蹤功能或終止進(jìn)程功能的 信號(hào)到來(lái)。該掛起時(shí)間由于系統(tǒng)的其他調(diào)度活動(dòng)可能會(huì)比要求的時(shí)間長(zhǎng)。第四章進(jìn)程環(huán)境4.1 進(jìn)程標(biāo)志符1. 獲得進(jìn)程和父進(jìn)程的 ID函數(shù)原型: #include<sys/types.h>pid_t getpid(void
20、);pid_t getppid(void);函數(shù)功能: getpid ()返回調(diào)用進(jìn)程的進(jìn)程 ID, getppid ()返回調(diào)用進(jìn)程的父進(jìn)程 ID.4.2 用戶 ID 1獲得真實(shí)用戶,有效用戶,真是組,有效組的 ID函數(shù)原型: #include<sys/types.h>uid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);函數(shù)功能: getuid ()返回調(diào)用進(jìn)程的真實(shí)用戶 ID, geteuid() 返回調(diào)用進(jìn)程的有效用戶 ID,getgid ()返回調(diào)用進(jìn)程的真實(shí)組 ID,g
21、etegid ()返回調(diào) 用進(jìn)程的有效組的 ID。2. 設(shè)置用戶和組的 ID函數(shù)原型: #include<sys/types.h>int setuid(uid_t uid);int setgid(gid_t gid);函數(shù)功能:這兩個(gè)函數(shù)分別根據(jù)進(jìn)程的權(quán)限設(shè)置真實(shí)用戶ID,有效用戶id,真實(shí)組 ID ,有效組 ID。3. 獲得輔助組 ID函數(shù)原型: # include<sys/types.h>int getgroups(int gidsetsize.gid_t grouplist);函數(shù)功能:該函數(shù)在隊(duì)列的組列表中填入調(diào)用進(jìn)程的輔助組id。參數(shù)grouplist 確定了
22、組列表中的元素個(gè)數(shù)。4. 獲得用戶名函數(shù)原型: char *getlogin(void)函數(shù)功能:該函數(shù)返回一個(gè)指針,指向與調(diào)用進(jìn)程相關(guān)的用戶名。4.3 進(jìn)程組1. 獲得進(jìn)程組 ID函數(shù)原型: #include<sys/types.h>pid_t getpgrp(void);函數(shù)功能:該函數(shù)返回調(diào)用進(jìn)程的進(jìn)程組 ID。2. 創(chuàng)建會(huì)議并且設(shè)置進(jìn)程組 ID函數(shù)原型: #include<sys/types.h>pid_t setsid(void)函數(shù)功能:如果調(diào)用進(jìn)程不是進(jìn)程組的引導(dǎo)者, 則該函數(shù)將創(chuàng)建一個(gè)新的會(huì)議。該調(diào)用進(jìn)程應(yīng)該為新會(huì)議的會(huì)議引導(dǎo)者, 應(yīng)該為新進(jìn)程組的引導(dǎo),
23、 應(yīng)該沒(méi)有控制 終端。進(jìn)程組的 ID 應(yīng)該等于該調(diào)用進(jìn)程的 ID。3. 為作業(yè)控制設(shè)置進(jìn)程組 ID函數(shù)原型: #include<sys/types.h>int setpgid(pid_t pid,pid_t pgid);函數(shù)功能:如匕POSIX_JOB_CONTROL定義,則該函數(shù)用來(lái)加入已經(jīng)存在的進(jìn) 程組或者創(chuàng)建一個(gè)新的進(jìn)程組。4.4 系統(tǒng)標(biāo)志1. 獲得系統(tǒng)名函數(shù)原型:#include<sys/utaname.h>int uname(struct utsname *name);函數(shù)功能:該函數(shù)存儲(chǔ)了鑒別當(dāng)前操作系統(tǒng)的信息。4.5 時(shí)間1 得到系統(tǒng)時(shí)間 函數(shù)原型: #i
24、nclude<time.h>time_t time(time_t *tloc);函數(shù)功能: 該函數(shù)返回自從一時(shí)間點(diǎn)以來(lái)的某個(gè)時(shí)間值, 以秒為單位。 參數(shù) tloc指向一個(gè)時(shí)間值所存儲(chǔ)的地方。2. 獲得進(jìn)程時(shí)間函數(shù)原型: #include<sys/times.h>clock_t times(struct time *buffer);函數(shù)功能: 參數(shù) buffer 指向一個(gè)結(jié)構(gòu), 該函數(shù)向該結(jié)構(gòu)填寫(xiě)有關(guān)時(shí)間的信息。Clock_t 和 tms 結(jié)構(gòu)在 <sys/times.h> 中定義。46 環(huán)境變量1. 獲取環(huán)境函數(shù)原型: #include<stdlib.
25、h>char *getenv(const char *name);函數(shù)功能:該函數(shù)在環(huán)境列表查找字符串 name=value, 返回指向 value 的指針。如果沒(méi)有找到,則返回 null 。4.7 終端標(biāo)志1產(chǎn)生終端路徑函數(shù)原型: #include<stdio.h>char Ictermid(char *s);函數(shù)功能:該函數(shù)產(chǎn)生一個(gè)字符串, 作為路徑名, 提交到當(dāng)前進(jìn)程的當(dāng)前控制 終端。2確定終端設(shè)備名函數(shù)原型: char *ttyname(int fildes);參數(shù)沒(méi)有確函數(shù)原型:#include<sys/types.h>int isatty(int fi
26、ldes);函數(shù)功能: ttyname ()返回一個(gè)指針指向一個(gè)字符串,它包含了與文件描述符 fildes 相關(guān)的終端名;如果 fildes 是一個(gè)有效的與終端聯(lián)系的文件描述符,isatty ()返回“ 1”,否則返回“ 0” 48 可配置的系統(tǒng)變量1獲得可配置的系統(tǒng)變量函數(shù)原型: #include<unistd.h>long sysconf(int name);函數(shù)功能:該函數(shù)提供了一個(gè)應(yīng)用方法來(lái)決定可配置系統(tǒng)變量的當(dāng)前值。name代表了所查詢的系統(tǒng)變量。第五章文件和目錄51 目錄1目錄的入口形式頭文件 <dirent.h> 定義了一個(gè)結(jié)構(gòu)和目錄程序用到的類(lèi)型,定的文
27、件內(nèi)部格式。 Readdir() 返回了一個(gè)指針指向一個(gè)類(lèi)型對(duì)象 struct dirent 。2目錄操作#include<dirent.h> dir *opendir(const char *dirname);struct dirent *readdir(dir *dirp);void rewinddir(dir *dirp);int closedir(dir *dirp);函數(shù)功能:opendir() 根據(jù)參數(shù) dirname 打開(kāi)一個(gè)目錄流; readdir ()返回一指向;個(gè)指針,它指向一個(gè)目錄流中當(dāng)前位置的目錄入口,目錄流由參數(shù) dirp rewinddir ()重置目錄
28、流的位置到目錄的起點(diǎn); closedir ()關(guān)閉目錄流,如 成功,則返回“ 0”值。52 工作目錄1 改變當(dāng)前的工作目錄函數(shù)原型: int chdir(const char *path);函數(shù)功能: path 指向目錄的路徑名。該函數(shù)使命名的目錄成為當(dāng)前的工作目錄。獲得工作目錄路徑名函數(shù)原型: char *getcwd(char *buf,size_t size);函數(shù)功能:該函數(shù)復(fù)制當(dāng)前工作目錄的絕對(duì)路徑名到 buf 所指向的隊(duì)列中。53基本文件的創(chuàng)建打開(kāi)一個(gè)文件函數(shù)原型:#include<sys/types.h>#include<sys/stat.h> #incl
29、ude<fcnt1.h> int open(const char *pa th, int oflag, );函數(shù)功能:open ()在文件和文件描述符之間建立了一個(gè)連接,它創(chuàng)建 了一個(gè)指向一個(gè)文件的打開(kāi)文件描述,參數(shù) path 指向文件的路徑名。2 創(chuàng)建一個(gè)新文件或者重寫(xiě)一個(gè)已經(jīng)存在的文件函數(shù)原型: #include<sys/types.h>#include<sys/stat.h> #include<fcnt1.h> int creat(const char *path, mode_t mode);函數(shù)功能:該函數(shù)調(diào)用 creat (path,m
30、ode 相當(dāng)于 open (path,o_wronly/o_creat/o_trunc,mode);3 設(shè)置文件的創(chuàng)建標(biāo)記函數(shù)原型: #include<sys/types.h>#include<sys/stat.h> mode_t umask(mode_t cmask);函數(shù)原型:umaskO設(shè)置進(jìn)程的文件模式創(chuàng)建標(biāo)記到 cmask,并且返回原來(lái)的標(biāo)記值。4 連接到一個(gè)文件函數(shù)原型: int link(const char *existing,const char *new);函數(shù)功能:參數(shù)existing 指向路徑名來(lái)命名存在文件,參數(shù)new指向一個(gè)路徑名, 它命名了
31、一個(gè)創(chuàng)建的新的目錄入口。 該函數(shù)為已存在的文件自動(dòng)的 創(chuàng)建一個(gè)新的連接,并且將文件連接數(shù)加 1。54 特殊文件創(chuàng)建1 生成一個(gè)目錄函數(shù)原型:#include<sys/types.h>#include<sys/stat.h>int mkdir(const char *path,mode_t mode);函數(shù)功能:該函數(shù)依據(jù)參數(shù) path 創(chuàng)建一個(gè)新的目錄。新目錄的允許位根據(jù)mode初始化。2 創(chuàng)建一個(gè) FIFO 類(lèi)型的文件函數(shù)原型:#include<sys/types.h>#includesys/stat.h>int mkfifo(const char
32、*path,mode_t mode);函數(shù)功能:mkfifo ()創(chuàng)建一個(gè)新的 fifo 類(lèi)型文件,它由 path 指向的路徑名命名。55 文件的移動(dòng)1 移動(dòng)目錄入口函數(shù)原型:int unlink(const char *path);函數(shù)功能:該函數(shù)移去由參數(shù) path 指向得路徑名所命名得連接并將連接數(shù)減去 1。2 移去一個(gè)目錄函數(shù)原型:int rmdir(const char *path)函數(shù)功能:3 重命名一個(gè)文件函數(shù)原型: int rename(const char *old,const char *new);路徑名,參數(shù)new指向文件的新路徑名。5文件特征5可配置路徑名變量第六章輸入
33、與輸出源語(yǔ)6管道創(chuàng)建內(nèi)進(jìn)程通道函數(shù)原型: int pipe(int filedw2);函數(shù)功能:該函數(shù)創(chuàng)建一個(gè)管道并且創(chuàng)建兩個(gè)文件描述符,一個(gè)是fiides0, 一個(gè)是 fiides1, 它們分別指的是讀'與寫(xiě)'的管道端。62 文件描述符控制1 復(fù)制一個(gè)打開(kāi)文件描述符函數(shù)原型: int dup(int fildes);int dup2(int fileds,int fileds2);函數(shù)功能:這兩個(gè)函數(shù)為 fcntl ()服務(wù)提供了兩個(gè)選擇的接口,用至U了 F_DUPF命令。63撤除文件描述符關(guān)閉一個(gè)文件函數(shù)原型: int close (int fildes);函數(shù)功能64輸入
34、和輸出文件讀函數(shù)原型: ssize_t read(int fildes,void *buf,size_t nbyte);函數(shù)功能:文件寫(xiě) 函數(shù)原型: ssize_t write(int fildes,const void *buf,size_t nbyte);函數(shù)功能:65 一個(gè)文件的控制操作1 文件控制操作的數(shù)據(jù)定義頭文件vfcnt1.h為fcnti ()和open ()定義了一下的要求和參數(shù):fcnti ()的 _cmd 值常量描述F_DUPFDF getfdF_getlkF setfdF gettflF setflF_SETLKF_SETLKW2文件控制函數(shù)原型:#clude vsys/
35、t yp es.h>#cluedv uni std.h>#in cludevfc ntl.h>int fen tl(i nt fildes,i nt end.);函數(shù)功能:fentl()為打開(kāi)的文件提供了一系列控制,參數(shù)fildes是個(gè)文件描述符。Cmc決定了控制的內(nèi)容。讀/寫(xiě)文件偏移量的重新定位函數(shù)原型:#include<sys/types.h>#in clude< uni std.h>off_t lseek(i nt fildes,off_t offset,i nt whe nee);函數(shù)功能:lseek ()為fildes 所指定的文件重新設(shè)置偏
36、移量。6. 6文件同步文件的狀態(tài)同步函數(shù)原型:#includevunistd.h>int fsyn c(i nt fildes);上。文件數(shù)據(jù)的同步 函數(shù)原型:#i ncludevu nistd.h>函數(shù)功能:該函數(shù)用來(lái)暗示所有的文件描述數(shù)據(jù)被傳輸?shù)搅舜鎯?chǔ)設(shè)備int fdatasync(int fildes);函數(shù)功能:該函數(shù)迫使當(dāng)前所有排隊(duì)的 I/O 操作進(jìn)入同步 I/O 狀態(tài)。6 7 異步 輸入與輸出1 異步輸入與輸出的數(shù)據(jù)定義頭文件 <aio.h> 能使vsys/types.h> , <signal.h> , <time.h> 和 v
37、fcntl.h>中的符號(hào)可見(jiàn)。 異步 I/O 控制塊 異步 I/O 控制塊結(jié)構(gòu) aiocb 在許多異步 I/O 接口中使用,它在 <aio.h> 中定義。主要常量2 異步讀函數(shù)原型: #include<aio.h>int aio_read (struct aiocb *aiocbp);函數(shù)功能: aiocbp->io_nbytes, 表示讀的字節(jié)數(shù); aiocbp->aio_fildes ,表示 讀的文件; aiocbp->aio_buf, 表示讀到的緩沖區(qū)。3異步寫(xiě)函數(shù)原型:#include<aio.h>函數(shù)功能:該函數(shù)返回 aio
38、cbp 指向的結(jié)構(gòu)所表示的錯(cuò)誤狀態(tài)。int aio_write(struct aiocb *aiocbp);函數(shù)功能:參數(shù)表示同上。4 列出直接 I/O函數(shù)原型: #include<aio.h>int lio_listio(int mode,struct aiocb *const list,intnent,struct sigevent *sig);函數(shù)功能:該函數(shù)允許用一個(gè)函數(shù)調(diào)用初始化一個(gè) I/O 請(qǐng)求列表。5 得到異步 I/O 操作的錯(cuò)誤狀態(tài) 函數(shù)原型: #include<aio.h>int aio_error(const struct aiocb *aiocbp
39、);6 得到異步 I/O 操作的返回狀態(tài) 函數(shù)原型: #include<aio.h>ssize_t aio_return(struct aiocb *aiocbp);函數(shù)功能:7 刪除異步 I/O 請(qǐng)求 函數(shù)原型: #include<aio.h>int aio_cancel (int fildes,struct aiocb *aiocbp);函數(shù)功能:參數(shù) fildes 是文件描述符, 參數(shù) aiocbp 指向異步 I/O 控制塊上的請(qǐng) 求刪除部分。8 等待異步 I/O 請(qǐng)求 函數(shù)原型: #include<aio.h>int aio_suspend(cons
40、t struct aiocb *const list,int nent,conststruct timespec *timeout);函數(shù)功能:標(biāo)準(zhǔn)定義該函數(shù)掛起調(diào)用進(jìn)程直到至少一個(gè) list 指向 的異步 I/O 操作完成,或者一個(gè)信號(hào)中斷了一個(gè)函數(shù), 或者超時(shí)了( timeout 指定)。9 異步 文件同步化 函數(shù)原型: #include<aio.h>int aio_fsync(int op,struct aiocb *aiocbp);函數(shù)功能:該函數(shù)迫使所有與(參數(shù) aiocbp 指向的)結(jié)構(gòu) aiocb 中 aio_fildes所指定的文件相關(guān)異步 I/O 操作進(jìn)入同步狀態(tài)
41、。第七章設(shè)備和面向類(lèi)的函數(shù)71 基本的終端接口1 接口特性 當(dāng)一個(gè)終端文件被打開(kāi),通常它將引起進(jìn)程等待直到連接被建立。進(jìn)程組 一個(gè)終端可以具有與它相關(guān)的前臺(tái)進(jìn)程組,它發(fā)揮特定的角色,后面會(huì)講到??刂平K端 終端存取控制 輸入操作和讀進(jìn)程 規(guī)范的輸入操作非規(guī)范模式的輸入操作 寫(xiě)數(shù)據(jù)和輸出處理 特殊的符號(hào)(INTR,QUIT,ERASE,KILL) modems掉連接關(guān)閉終端設(shè)備文件2可設(shè)置的參數(shù) termios 機(jī)構(gòu)該結(jié)構(gòu)在vtermios.h中定義,在控制特定的終端I/O特性中要用到。輸入模式termios c_ifla p 值域標(biāo)記名描述BRKINT信號(hào)中斷ICRNL輸入時(shí)將CR映射到NLIG
42、NBRK忽略中斷狀態(tài)IGNCR忽略CRIGNPAR忽略奇偶錯(cuò)誤INLCR輸入時(shí)將NL映射到CRINPCK輸入奇偶校驗(yàn)使能ISTRIPStrip字符IXOFF開(kāi)始/停止輸入控制使能IXON開(kāi)始/停止輸出控制使能PARMRK產(chǎn)生奇偶錯(cuò)誤輸出模式控制模式標(biāo)記名描述CLOCAL忽略modems態(tài)行CREAD接受使能CSIZE每個(gè)字節(jié)的位數(shù)CS55位CS66位CS77位CS88位CSTOPB發(fā)送一個(gè)或兩個(gè)停止位HUPCL在最后的關(guān)閉中掛起PARENB奇校驗(yàn)使能PARODD奇校驗(yàn)或偶校驗(yàn)值本地模式標(biāo)記名描述ECHO響應(yīng)使能ECHOE響應(yīng)ETASEgcHOK響應(yīng)KILLECHONL響應(yīng)'/n
43、9;canon規(guī)范輸入IEXTEN擴(kuò)展函數(shù)使能ISIG信號(hào)使能Noflsh中斷,停止或掛起后關(guān)掉flushTOST OP為后臺(tái)輸出發(fā)送SIGTTOUtermios c_lflag特殊的控制字符這些特殊的控制字符值在隊(duì)列c_cc中定義,分為規(guī)范和非規(guī)范兩種模式。波特率值3波特率函數(shù)函數(shù)原型:#include<termios.h>sp eed_t cfgetos peed(c onst struct termios *termios_ p);int cfsetos peed (struct termios *termios_ p,sp eed_t sp eed);sp eed_t cf
44、getis peed(c onst struct termios *termios_ p);int cfsetispeed(struct termios *termios_p,speed_t speed);函數(shù)功能:以上這些接口被用來(lái)在 termios 結(jié)構(gòu)獲得和設(shè)定輸入與輸出的波特 率值。72 基本的終端接口控制函數(shù)1 獲得并設(shè)定狀態(tài)函數(shù)原型: #include<termios.h>int tcgetattr(int fildes,struct termios *termios_p);int tcsetattr(int fildes,int optional_actions,co
45、nst struct termios * termios_p);函數(shù)功能: tcgetattr ()獲得 fildes 所確定的文件的參數(shù)并將其存儲(chǔ)在t ' erops_p 所指向的結(jié)構(gòu)中; tcsetattr ()將設(shè)置參數(shù)。2 行控制函數(shù)函數(shù)原型:#include<termios.h>功能:如果進(jìn)程支持控制終端,該函數(shù)設(shè)置與終端相關(guān)的前臺(tái)進(jìn)程組 IDint tcsendbreak(int fildes,int duration);int tcdrain(int fildes);int tcflush(int fildes,int queue_selector);函數(shù)功能
46、:int tcflow(int fildes,int action)如果終端使用異步連續(xù)數(shù)據(jù)傳輸, tcsendbreak ()引起在一段時(shí)間內(nèi)連續(xù)的 0'位傳輸; tcdrain ()等待直到輸出傳輸完畢; tcflush ()和 tcflow ()是溢出的相關(guān)處理。(參考第 212 頁(yè))3 取得前臺(tái)進(jìn)程組的 ID函數(shù)原型: #include<sys/types.h>pid_t tgetpgrp(int fildes);功能:4 設(shè)置前臺(tái)進(jìn)程組 ID函數(shù)原型: #include<sys/types.h>int tcsetpgrp(int fildes,pid_
47、t pgrp_id);到 pgrp_id 。第八章基于 C 語(yǔ)言的服務(wù)8.1 參考的 C 語(yǔ)言規(guī)范1 時(shí)間函數(shù)的擴(kuò)展2 setlocale ()函數(shù)的擴(kuò)展函數(shù)原型: #include<locale.h>char *setlocale(int category,const char *locale);函數(shù)功能: 該函數(shù)根據(jù)參數(shù) category 和 locale 設(shè)置,更改或者查詢進(jìn)程現(xiàn)場(chǎng)。82C 語(yǔ)言輸入 / 輸出函數(shù)映射一個(gè)流指針到一個(gè)文件描述符函數(shù)原型: #include<stdio.h>函數(shù)功能:該函數(shù)返回一個(gè)與流相關(guān)的整型文件描述符。根據(jù)一個(gè)文件描述符打開(kāi)一個(gè)流
48、函數(shù)原型: #include<stdio.h>FILE *fdopen(int fildes,const char *type);函數(shù)功能:該函數(shù)聯(lián)合一個(gè)流和一個(gè)文件描述符。其他文件類(lèi)型函數(shù)之間的相互作用一個(gè)單一的文件描述說(shuō)明可以通過(guò)流和文件描述符訪問(wèn),流或者是文件描述符被稱(chēng)作位打開(kāi)文件的句柄,一個(gè)打開(kāi)文件說(shuō)明可以有多個(gè)句柄。句柄可以在不影響重要的打開(kāi)文件說(shuō)明的情況下被創(chuàng)建和刪除,創(chuàng)建如 fcntl().dup(),fdopen(),fileno(),fork();刪除如 fclose(),close() 。(1) fopen ()隨著open ()的調(diào)用分配描述符,基礎(chǔ)函數(shù)為op
49、en()。2) fclose():該函數(shù)完成在與FILE流相關(guān)的,對(duì)文件描述符的close ()功能。3) freopen0:具有fclose ()和fopen ()的特點(diǎn)。4) fflush):如果流可寫(xiě)或者緩存數(shù)據(jù)還沒(méi)有寫(xiě)入文件時(shí),該函數(shù)標(biāo)記下基礎(chǔ)文件 st_ctime 和 st_mtime 的值。5)fgetc (), fgets (), fread (), getc (), getchar (), gets), scanf (), fscanf ():這些函數(shù)標(biāo)記更新的 st_atime 值?;A(chǔ)函數(shù)是 read ()和 lseek ()。fputc(),fputs(),fwrite(
50、),putc(),putchar(),puts(),printf(),fprintf():從以上任一個(gè)函數(shù)的成功執(zhí)行到下一個(gè)調(diào)用(在同一個(gè)流中的 fflush ()或fclose ()或 exit ()或 abort (),記下 更新的 st_ctime 和 st_mtime值。基礎(chǔ)函數(shù)是 write ()和lseek ()。入文件時(shí),該函數(shù)標(biāo)記下文件更新的 st_ctime 和 st_mtime 值。基礎(chǔ)函數(shù)是7) fseek (), rewind ():如果流可寫(xiě)或者緩存數(shù)據(jù)還沒(méi)有寫(xiě)lseek()和 write ()。(8)perror ():記下與標(biāo)準(zhǔn)錯(cuò)誤流相關(guān)的文件。(9)tmpfil
51、e (): fopen ()執(zhí)行后為文件分配文件描述符。(10)ftell():基礎(chǔ)文件是 lseek ()。執(zhí)行 fflush ()后執(zhí)行該函數(shù)的結(jié)果與執(zhí)行 fflush 前執(zhí)行該函數(shù)的結(jié)果相同。11) 報(bào)錯(cuò)12) exit (), abort (): exit ()終止進(jìn)程的時(shí)候要關(guān)閉流,abort ()只終止進(jìn)程對(duì)流沒(méi)有影響。4 文件操作 remove ()函數(shù) 該函數(shù)和 unlink ()函數(shù)的功能一樣。83 其他的 C 函數(shù)1 非局部跳轉(zhuǎn) 函數(shù)原型: #include<setjmp.h>int sigsetjmp(sigjmp_buf env,int savemask);
52、void siglongjmp(sigjmp_buf env,int val);函數(shù)功能: sigsetjmp ()宏要與標(biāo)準(zhǔn)中 setjmp ()宏的定義一致,如果參數(shù)savemask不為“ 0”,sigsetjmp ()就要保存當(dāng)前的信號(hào)標(biāo)記作為調(diào)用環(huán)境的部分。 Siglongjmp ()同理。2 設(shè)置時(shí)間域 函數(shù)原型: #include<time.h>void tzset(void);函數(shù)功能:該函數(shù)用環(huán)境變量 TZ的值來(lái)設(shè)定時(shí)間變化信息。第九章系統(tǒng)數(shù)據(jù)庫(kù)91 系統(tǒng)數(shù)據(jù)庫(kù)本章描述了兩個(gè)數(shù)據(jù)庫(kù):組數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)。組數(shù)據(jù)庫(kù)包括的信息有:組名,組的數(shù)字 ID, 組中的用戶列表;
53、用戶數(shù)據(jù)庫(kù)包含的信息有:用戶名,用戶的數(shù)字ID,組的數(shù)字ID,初始化的工 作目錄,和初始化的用戶程序。92 數(shù)據(jù)庫(kù)的訪問(wèn)1 組數(shù)據(jù)庫(kù)的訪問(wèn)函數(shù)原型: #include<sys/type.h>#include<grp.h> struct group *getgrgid(gid_t gid);struct group *getgrnam(const char *name);函數(shù)功能:getgrid ()和getgrnam ()返回指針,它指向一個(gè) structgroup 類(lèi)型的對(duì)象,包含了組數(shù)據(jù)庫(kù)的入口。2 用戶數(shù)據(jù)庫(kù)的訪問(wèn) 函數(shù)原型: #include<sys/ty
54、pes.h>#include <pwd.h> struct paswd *getpwuid(uid_t uid);struct passwd *getpwnam(const char *name);函數(shù)功能:getpwuid ()和getpwnam返回一個(gè)指針,指向 structpasswd類(lèi)型的一個(gè)對(duì)象,它包含了用戶數(shù)據(jù)庫(kù)的入口。第十章數(shù)據(jù)交換形式101歸檔/交換文件格式擴(kuò)展的 tar 格式擴(kuò)展的 cpio 格式:面向字節(jié)的歸檔格式,包括了文件頭,文件名和文件內(nèi)容。大流量:該格式被看作是字節(jié)流。章同步111信號(hào)量特征頭文件vsemaphore.h定義了 sem_t類(lèi)型,它用于信號(hào)量操作中。sem_t代表了信號(hào)量,用文件描述符能夠?qū)崿F(xiàn)這些信號(hào)量,應(yīng)用程序能夠打開(kāi)至少OP EN_MAX這么多的文件和信號(hào)量。標(biāo)準(zhǔn)中,頭文件 vsema phore.h 能使頭文件 vsys/types.h> 和vfcntl.h> 中的符號(hào)可見(jiàn)。112 信號(hào)量函數(shù)1 初始化一個(gè)未命名的信號(hào)量函數(shù)原型: #inxlude<semaphore.h>int sem_init (sem_t *sem,int pshared,unsigned int value)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技教育在課堂中的有效運(yùn)用計(jì)劃
- 社區(qū)團(tuán)結(jié)互助的活動(dòng)示范計(jì)劃
- 《大方縣宏能能源開(kāi)發(fā)有限公司貴州省大方縣金沙煤田巖腳-白花塔井田煤礦(新建)礦產(chǎn)資源綠色開(kāi)發(fā)利用方案(三合一)》評(píng)審意見(jiàn)
- 2025年美麗的大自然標(biāo)準(zhǔn)教案合集
- 規(guī)范化銷(xiāo)售培訓(xùn)
- 個(gè)人年終總結(jié)培訓(xùn)
- 透析患者導(dǎo)管感染護(hù)理
- Unit 5 Lesson 28 The Study of Living Things2024-2025學(xué)年九年級(jí)英語(yǔ)上冊(cè)同步教學(xué)設(shè)計(jì)(冀教版)河北專(zhuān)版
- 2025年安徽貨運(yùn)從業(yè)資格證考試500題題庫(kù)
- 高中數(shù)學(xué) 第一章 空間幾何體 1.2 空間幾何體的三視圖和直觀圖 1.2.3 空間幾何體的直觀圖教學(xué)實(shí)錄 新人教A版必修2
- 2025年湖南商務(wù)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)必考題
- 中儲(chǔ)糧黑龍江分公司招聘考試試卷2023
- 化學(xué)實(shí)驗(yàn)室安全職責(zé)分配
- 9 楓樹(shù)上的喜鵲 【知識(shí)精研】語(yǔ)文二年級(jí)下冊(cè) 統(tǒng)編版
- 2025年工程策劃勘察設(shè)計(jì)合作框架協(xié)議書(shū)
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 國(guó)外銀發(fā)經(jīng)濟(jì)發(fā)展
- 2025年高考作文素材積累之《人民日?qǐng)?bào)》時(shí)評(píng)觀點(diǎn)摘抄(標(biāo)題、開(kāi)頭、分論點(diǎn)、結(jié)尾)
- 2024年07月上海興業(yè)銀行上海分行招考筆試歷年參考題庫(kù)附帶答案詳解
- 中藥玫瑰花培訓(xùn)
- 廣東省佛山市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版小升初真題((上下)學(xué)期)試卷及答案
評(píng)論
0/150
提交評(píng)論