POSIX统一标准理解专业资料.doc
《POSIX统一标准理解专业资料.doc》由会员分享,可在线阅读,更多相关《POSIX统一标准理解专业资料.doc(44页珍藏版)》请在咨信网上搜索。
POSIX原则理解 POSIX原则总体分析 POSIX,全称为可移植性操作系统接口,是一种关于信息技术IEEE原则。它涉及了系统应用程序接口(简称API),以及实时扩展[C语言]。 该原则目是定义了原则基于UNIX操作系统系统接口和环境来支持源代码级可移植性。当前,原则重要提供了依赖C语言一系列原则服务,再将来版本中,原则将致力于提供基于不同语言规范。 该原则对核心需求某些定义了一系列任何编程语言都通用服务,这一某些服务重要从其功能需求方面阐述,而非定义依赖于编程语言接口。语言规范重要有两某些构成。一某些涉及了访问核心服务编程语言原则接口,这些核心服务为原则中基于编程语言核心需求某些所定义;另一某些包括了一种特殊语言服务原则接口。基于任何语言,与该原则一致执行都必要遵循语言规范任何章节。 该原则一共被分为四个某些: (1)陈述范畴和一系列原则参照(第一章); (2)定义和总概念;(第二章) (3)各种接口设备;(第三章到第九章,第十一章到第十五章) (4)数据互换格式;(第十章) 该原则重要目有: (1)面向应用 (2)定义接口,而不是它详细实现; (3)涉及资源和可移植性,而非对象; (4)基于c语言; (5)无超级顾客,无系统管理; (6)最小限度接口,最小限度定义; (7)应用领域广泛; (8)对此前实现进行最小限度变化; (9)对原有程序代码做最小修改; (10)实时扩展; 如下就对各个章节做简要分析。 第一章概述 1.1范畴 定义范畴核心要素有: (1)定义足够一套功能合用于实时应用程序领域重要某些; (2)定义足够实现规范和性能有关函数,以便容许实时应用程序完毕系统拟定性响应; 1.2 一致性 系统须支持原则中定义接口,系统可以提供原则中没有规定到函数和工具。在遵循于该原则实现中,一种一致性文档是需要用到,它必要具备与该原则相似构造,包具有全名,数字,和原则所批示日期,以及头文献<limits.h>和<unistd.h>中界限值等等。该一致性文档详细阐明了原则中定义执行行为。该原则规定了应用程序一致性,所有遵循原则应用程序都使用基于c语言服务。 第二章术语和基本需求 2.1 定义 (1)术语 该原则中定义了一系列术语,如一致性文档,被定义实现,也许性,无用特性等,还定义了某些通用名词,如绝对途径,存取模式,地址空间,恰当权限,定期器,异步I/O操作,后台进程,后台进程组,块文献,阻塞进程,等等。 (2)基本概念 扩展安全控制;文献存取容许;文献级别;文献名可移植性;途径名决定; (3)错误号 大某些函数都在外部变量errno中提供了错误号,定义如下: extern int errno; (4)简朴系统数据类型 这些数据类型在头文献<sys/types.h>中定义,它包括了至少如下类型: dev_t: 用于设备号; gid_t: 用于进程标志符; ino_t: 用于文献序列号; inode_t: 用于某些文献参数; nlink_t: 用于连接内容; off_t: 用于文献大小; pid_t: 用于进程或进程组标志符; size_t: 在c原则(2)中定义; ssize_t: 用于返回字节数和错误标志函数; uid_t: 用于顾客标志符; (5)环境描述 当一种进程开始执行时,将调用一种表达环境字符串数组,这个数组为外部变量environ所指向,其定义如下: extern char **environ; (6)其她 在该章中,原则还总体简介了c语言定义某些标志符,数字方面限制,以及某些符号常量,这些在后来章节中都会一一浮现。 如下是OSE服务简要设计描述一种清单。这些规定详细论述在POSIX规范书中。 l 进程源语 进程源语所涉及函数完毕了大多数简朴操作系统服务,如进程解决,进程信号,以及定期器。普通状况下,该原则所拟定进程所有属性都不能被一种进程源语变化,除非描述符特别指明。 l 进程环境 l 目录与文献 目录与文献所涉及函数执行了一系列操作系统服务,例如文献创立和删除,检测,修改特性。它们提供了重要办法,进程由于一系列 I/O操作使用她们来存取文献和目录。 l 输入输出原语 这些子文献和管道函数解决输入和输出。功能被指定为进行文献描述符管理和I/O活动之间得平衡调节。 l 设备驱动和分类函数 该章节描述了一种基本终端接口和某些基本终端控制函数,如果执行时被提供,所有异步通信端口都应当支持它,接口是支持网络连接还是异步端口或者两者都支持由完毕者定义,一致性文档应当描述那些设备类型被这些接口所支持。本章某些函数重要应用与进程控制终端 l 基于c语言得服务 l 系统数据库 l 数据互换格式 l 异步 l 内存管理 l 执行调度 l 时钟和定期器 l 消息传递 第三章进程原语 3.1 进程创立和执行 1.进程创立 函数原型:pid_t fork (void) 函数功能:调用时需要引用头文献是<sys/types.h>,fork()创立了一种新进程。 2.执行一种文献 函数原型: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. …); int execvp(const char *file,char *const argv[]); 函数功能:exec系列函数用一种新进程映像代替了当迈进 程映像,这个新进程映像创立于一种规则,可执行文献,叫做新进程映像文献。执行成功无返回值由于调用进程映像觉得新进程映像所覆盖。 3.2 进程终结 进程终结有两种状况: (1)从main()函数返回时或者执行exit()或_exit()函数时正常终结; (2)被abort()函数祈求或者接受到某些信号时不正常终结; 1.等待进程终结 函数原型:#include<sys/types.h> #include<sys/wait.h> pid_t wait(int *stat_loc); pid_t waitpid(pid_t pid,int *stat_loc.int options); 函数功能:wait()和waitpid()容许调用进程获得它一种子进程状态信息。Wait()函数将挂起调用进程直到获得了它子进程状态信息,或者是直到获得一种终结进程信号;如果pid=-1并且options=0,waitpid()函数功能将和waitpid()相似,否则它功能将根据pid和options值而变化。 2. 终结一种进程 函数原型:void_exit(int status); 函数功能:_exit()函数将终结一种调用进程,该函数不能返回给其调用者 3.3 信号 在头文献<signal.h>终声明了sigset_t类型和sigaction构造。完毕所定义信号分三类:必须信号;任务控制信号;内存保护信号,分别如下表: 必须信号 符号常量 描述 SIGABRT 非正常终结信号 SIGALRM 超时信号 SIGFPE 错误运算操作 SIGHUP 为控制中断所检测到挂断 SIGILL 无效硬件信号检测 SIGINT 交互式信号 SIGKILL 终结信号 SIGPIPE 写信号 SIGQUIT 交互式终结信号 SIGSEGV 无效内存引用检测信号 SIGTERM 终结信号 SIGUSR1 保存信号 SIGUSR2 保存信号 作业控制信号 符号常量 描述 SIGCHLD 子进程终结或停止 SIGCONT 停止后继续 SIGSTOP 停止信号 SIGTSTP 交互式停止信号 SIGTTIN 从控制终端读 SIGTTOU 写到控制终端 内存保护信号 符号常量 描述 SIGBUS 获取内存中不拟定某些 每一种进程有一种进程标记(process mask),它定义了一组产生但被阻塞传递信号集。Sigaction(),sigpromask(),sigsuspend() 函数控制这个进程标记行为。 1.送一种信号到进程 函数原型:#include <sys/types.h> #include<signal.h> int kill(pid_t pid,int sig) 函数功能:该函数发送一种信号到一种由pid指明进程或者进程组,sig标志了信号类型,其值是0或者上表中值。如果发送成功,返回‘0’,否则返回‘1’。 2. 操纵信号集 函数原型:#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); 函数功能:sigsetops源语操纵信号集。她们操作以数字为对象,这些数据由应用程序地址所指向,而不是以系统所知信号集为对象。 3. 检测和更改信号行为 函数原型:#include<signal.h> int sigaction(int sig,const struct sigaction *act,struct sigaction *oact); 函数功能:该函数容许调用函数检查与拟定信号相联系行为, 参数sig拟定了信号,sigaction构造在头文献<signal.h>中被定义,描述了所采用行为。如果参数act不为null,它指向一种构造,它指定了与信号相联系行为。如果参数oact不为null,先前与信号相联系行为将被存储到由oact指向地方。 4. 检查和变化阻塞信号 函数原型:#include<signal.h> int sigprocmask(int how,xonst sigset_t *set,sigset_t *oset); 函数功能:该函数用来检查和变化调用进程信号标记(signal mask),如果参数set不为null,它指向一种信号集用于变化当前阻塞集。参数how指明了变化方式,参数oset不为null时,先前信号标记被存储在它所指向地方,如果参数set为null,则参数how就没故意义了,并且进程信号标记不能随函数调用而变化。 5. 检查未定信号 函数原型:#include<signal.h> int sigpending(sigset_t *set); 函数功能:该函数存储一种信号集,这些信号是在被调用进程传播和未定状况下阻塞,由参数set所指向。 6.等待一种信号 函数原型:#include<signal.h> int sigsuspend(const sigset_t *sigmask); 函数功能:该函数用参数sigmask所指向信号集取代了进程信号标记(signal mask),然后挂起该进程直到接受到一种信号,其行为是执行信号跟踪功能或者是终结该进程。 7. 同步接受一种信号 函数原型: #include<signal.h> int sigwaitinfo(const sigset_t *set,siginfo_t *info); int sigtimedwait(const sigset_t *set,siginfo_ *info,const struct timespec *timeout ); 函数功能:该函数从参数set所拟定信号集中选取一种未定信号出来。如果该函数成功,返回一种信号数;否则返回-1。 8. 排队一种信号到进程 函数原型:#include<signal.h> int sigqueue(pid_t pid,int signo,const union sigval value); 函数功能:该函数功能是使由signo拟定信号将参数value所拟定值发送到由pid指明进程中去。 3.4 定期器操作 1.调度警报 函数原型:unsigned int alarm(unsigned int seconds); 函数功能:当参数seconds指定一段实时时间过去后,该函数将发送一种SIGALRM信号到调用进程。 2. 挂起进程执行 函数原型:int pause(void); 函数功能:该函数挂起一种调用进程直到得到一种信号,这个信号或者执行信号跟踪功能或者是终结该进程。如果是终结进程,该函数不返回;如果是执行信号跟踪功能,则该函数在信号跟踪函数返回后也要返回。 3. 延迟进程执行 函数原型:unsigned int sleep(unsigned int seconds); 函数功能:该函数使当迈进程从执行状态转化为挂起状态,直到参数seconds所指定一段实时时间过去后,或者是一种唤醒信号跟踪功能或终结进程功能信号到来。该挂起时间由于系统其她调度活动也许会比规定期间长。 第四章进程环境 4.1 进程标志符 1.获得进程和父进程ID 函数原型:#include<sys/types.h> pid_t getpid(void); pid_t getppid(void); 函数功能:getpid()返回调用进程进程ID, getppid()返回调用进程父进程ID. 4.2 顾客ID 1.获得真实顾客,有效顾客,真是组,有效组ID 函数原型:#include<sys/types.h> uid_t getuid(void); uid_t geteuid(void); gid_t getgid(void); gid_t getegid(void); 函数功能:getuid()返回调用进程真实顾客ID,geteuid()返回调用进程有效顾客ID,getgid()返回调用进程真实组ID,getegid()返回调用进程有效组ID。 2. 设立顾客和组ID 函数原型:#include<sys/types.h> int setuid(uid_t uid); int setgid(gid_t gid); 函数功能:这两个函数分别依照进程权限设立真实顾客ID,有效顾客ID,真实组ID,有效组ID。 3. 获得辅助组ID 函数原型:# include<sys/types.h> int getgroups(int gidsetsize.gid_t grouplist[]); 函数功能:该函数在队列组列表中填入调用进程辅助组ID。参数grouplist拟定了组列表中元素个数。 4. 获得顾客名 函数原型:char *getlogin(void) 函数功能:该函数返回一种指针,指向与调用进程有关顾客名。 4.3 进程组 1.获得进程组ID 函数原型:#include<sys/types.h> pid_t getpgrp(void); 函数功能:该函数返回调用进程进程组ID。 2. 创立会议并且设立进程组ID 函数原型:#include<sys/types.h> pid_t setsid(void) 函数功能:如果调用进程不是进程组引导者,则该函数将创立一种新会议。该调用进程应当为新会议会议引导者,应当为新进程组引导,应当没有控制终端。进程组ID应当等于该调用进程ID。 3. 为作业控制设立进程组ID 函数原型:#include<sys/types.h> int setpgid(pid_t pid,pid_t pgid); 函数功能:如{_POSIX_JOB_CONTROL}被定义,则该函数用来加入已经存在进程组或者创立一种新进程组。 4.4 系统标志 1.获得系统名 函数原型:#include<sys/utaname.h> int uname(struct utsname *name); 函数功能:该函数存储了鉴别当前操作系统信息。 4.5 时间 1得到系统时间 函数原型:#include<time.h> time_t time(time_t *tloc); 函数功能:该函数返回自从一时间点以来某个时间值,以秒为单位。参数tloc指向一种时间值所存储地方。 2. 获得进程时间 函数原型:#include<sys/times.h> clock_t times(struct time *buffer); 函数功能:参数buffer指向一种构造,该函数向该构造填写关于时间信息。Clock_t和tms构造在<sys/times.h>中定义。 4.6 环境变量 1.获取环境 函数原型:#include<stdlib.h> char *getenv(const char *name); 函数功能:该函数在环境列表查找字符串name=value,返回指向value指针。如果没有找到,则返回null。 4.7 终端标志 1.产生终端途径 函数原型:#include<stdio.h> char Ictermid(char *s); 函数功能:该函数产生一种字符串,作为途径名,提交到当迈进程当前控制终端。 2.拟定终端设备名 函数原型:char *ttyname(int fildes); int isatty(int fildes); 函数功能:ttyname()返回一种指针指向一种字符串,它包括了与文献描述符fildes有关终端名;如果fildes是一种有效与终端联系文献描述符,isatty()返回“1”,否则返回“0”。 4.8 可配备系统变量 1.获得可配备系统变量 函数原型:#include<unistd.h> long sysconf(int name); 函数功能:该函数提供了一种应用办法来决定可配备系统变量当前值。参数name代表了所查询系统变量。 第五章文献和目录 5.1 目录 1.目录入口形式 头文献<dirent.h>定义了一种构造和目录程序用到类型,没有拟定文献内部格式。Readdir()返回了一种指针指向一种类型对象struct dirent。 2.目录操作 函数原型:#include<sys/types.h> #include<dirent.h> dir *opendir(const char *dirname); struct dirent *readdir(dir *dirp); void rewinddir(dir *dirp); int closedir(dir *dirp); 函数功能:opendir()依照参数dirname打开一种目录流;readdir()返回一种指针,它指向一种目录流中当前位置目录入口,目录流由参数dirp指向;rewinddir()重置目录流位置到目录起点;closedir()关闭目录流,如成功,则返回“0”值。 5.2 工作目录 1 变化当前工作目录 函数原型:int chdir(const char *path); 函数功能:path指向目录途径名。该函数使命名录录成为当前工作目录。 2 获得工作目录途径名 函数原型:char *getcwd(char *buf,size_t size); 函数功能:该函数复制当前工作目录绝对途径名到buf所指向队列中。 5.3 基本文献创立 1 打开一种文献 函数原型:#include<sys/types.h> #include<sys/stat.h> #include<fcnt1.h> int open(const char *path,int oflag,…); 函数功能:open()在文献和文献描述符之间建立了一种连接,它创立了一种指向一种文献打开文献描述,参数path指向文献途径名。 2 创立一种新文献或者重写一种已经存在文献 函数原型:#include<sys/types.h> #include<sys/stat.h> #include<fcnt1.h> int creat(const char *path,mode_t mode); 函数功能:该函数调用creat(path,mode)相称于open(path,o_wronly/o_creat/o_trunc,mode); 3 设立文献创立标记 函数原型:#include<sys/types.h> #include<sys/stat.h> mode_t umask(mode_t cmask); 函数原型:umask()设立进程文献模式创立标记到cmask,并且返回本来标记值。 4 连接到一种文献 函数原型:int link(const char *existing,const char *new); 函数功能:参数existing指向途径名来命名存在文献,参数new指向一种途径名,它命名了一种创立新目录入口。该函数为已存在文献自动创立一种新连接,并且将文献连接数加1。 5.4 特殊文献创立 1 生成一种目录 函数原型:#include<sys/types.h> #include<sys/stat.h> int mkdir(const char *path,mode_t mode); 函数功能:该函数根据参数path创立一种新目录。新目录容许位依照mode初始化。 2 创立一种FIFO类型文献 函数原型:#include<sys/types.h> #includesys/stat.h> int mkfifo(const char *path,mode_t mode); 函数功能:mkfifo()创立一种新fifo类型文献,它由path指向途径名命名。 5.5 文献移动 1 移动目录入口 函数原型:int unlink(const char *path); 函数功能:该函数移去由参数path指向得途径名所命名得连接并将连接数减去1。 2 移去一种目录 函数原型:int rmdir(const char *path) 函数功能: 3 重命名一种文献 函数原型:int rename(const char *old,const char *new); 函数功能:该函数变化一种文献名字,参数old指向被重命名文献途径名,参数new指向文献新途径名。 5.6 文献特性 5.7 可配备途径名变量 第六章输入与输出源语 6.1 管道 1 创立内进程通道 函数原型:int pipe(int filedw[2]); 函数功能:该函数创立一种管道并且创立两个文献描述符,一种是fildes[0],一种是fildes[1],它们分别指是‘读’与‘写’管道端。 6.2 文献描述符控制 1 复制一种打开文献描述符 函数原型:int dup(int fildes); int dup2(int fileds,int fileds2); 函数功能:这两个函数为fcntl()服务提供了两个选取接口,用到了F_DUPFD命令。 6.3 撤除文献描述符 1 关闭一种文献 函数原型:int close (int fildes); 函数功能 6.4 输入和输出 1 文献读 函数原型:ssize_t read(int fildes,void *buf,size_t nbyte); 函数功能: 2 文献写 函数原型:ssize_t write(int fildes,const void *buf,size_t nbyte); 函数功能: 6.5 一种文献控制操作 1 文献控制操作数据定义 头文献<fcnt1.h>为fcntl()和open()定义了一下规定和参数: fcntl()_cmd值 常量 描述 F_DUPFD F_GETFD F_GETLK F_SETFD F_GETTFL F_SETFL F_SETLK F_SETLKW 2 文献控制 函数原型:#clude <sys/types.h> #clued<unistd.h> #include<fcntl.h> int fcntl(int fildes,int cnd,…); 函数功能:fcntl()为打开文献提供了一系列控制,参数fildes是一种文献描述符。Cmd决定了控制内容。 3 读/写文献偏移量重新定位 函数原型:#include<sys/types.h> #include<unistd.h> off_t lseek(int fildes,off_t offset,int whence); 函数功能:lseek()为fildes所指定文献重新设立偏移量。 6.6 文献同步 1 文献状态同步 函数原型:#include<unistd.h> int fsync(int fildes); 函数功能:该函数用来暗示所有文献描述数据被传播到了存储设备上。 2 文献数据同步 函数原型:#include<unistd.h> int fdatasync(int fildes); 函数功能:该函数迫使当前所有排队I/O操作进入同步 I/O状态。 6.7 异步输入与输出 1 ●异步输入与输出数据定义 头文献<aio.h>能使<sys/types.h>,<signal.h>,<time.h>和<fcntl.h>中符号可见。 ● 异步I/O控制块 异步I/O控制块构造aiocb在许多异步I/O接口中使用,它在<aio.h>中定义。 ●重要常量 2 异步读 函数原型:#include<aio.h> int aio_read (struct aiocb *aiocbp); 函数功能:aiocbp->io_nbytes,表达读字节数;aiocbp->aio_fildes,表达读文献;aiocbp->aio_buf,表达读到缓冲区。 3 异步写 函数原型:#include<aio.h> int aio_write(struct aiocb *aiocbp); 函数功能:参数表达同上。 4 列出直接I/O 函数原型:#include<aio.h> int lio_listio(int mode,struct aiocb *const list[],int nent,struct sigevent *sig); 函数功能:该函数容许用一种函数调用初始化一种I/O祈求列表。 5 得到异步I/O操作错误状态 函数原型:#include<aio.h> int aio_error(const struct aiocb *aiocbp); 函数功能:该函数返回aiocbp指向构造所示错误状态。 6 得到异步I/O操作返回状态 函数原型:#include<aio.h> ssize_t aio_return(struct aiocb *aiocbp); 函数功能: 7 删除异步I/O祈求 函数原型:#include<aio.h> int aio_cancel (int fildes,struct aiocb *aiocbp); 函数功能:参数fildes是文献描述符,参数aiocbp指向异步I/O控制块上祈求删除某些。 8 等待异步I/O祈求 函数原型:#include<aio.h> int aio_suspend(const struct aiocb *const list[],int nent,const struct timespec *timeout); 函数功能:原则定义该函数挂起调用进程直到至少一种list指向 异步I/O操作完毕,或者一种信号中断了一种函数, 或者超时了(timeout指定)。 9 异步文献同步化 函数原型:#include<aio.h> int aio_fsync(int op,struct aiocb *aiocbp); 函数功能:该函数迫使所有与(参数aiocbp指向)构造aiocb中aio_fildes所指定文献有关异步I/O操作进入同步状态。 第七章设备和面向类函数 7.1 基本终端接口 1 接口特性 ●当一种终端文献被打开,普通它将引起进程等待直到连接被建立。 ●进程组 一种终端可以具备与它有关前台进程组,它发挥特定角色,背面会讲到。 ●控制终端 ●终端存取控制 ●输入操作和读进程 ●规范输入操作 ●非规范模式输入操作 ●写数据和输出解决 ●特殊符号(INTR,QUIT,ERASE,KILL…) ●modem断掉连接 ●关闭终端设备文献 2 可设立参数 ●termios机构 该构造在<termios.h>中定义,在控制特定终端I/O特性中要用到。 ●输入模式 termios c_iflap值域 标记名 描述 BRKINT 信号中断 ICRNL 输入时将CR映射到NL IGNBRK 忽视中断状态 IGNCR 忽视CR IGNPAR 忽视奇偶错误 INLCR 输入时将NL映射到CR INPCK 输入奇偶校验使能 ISTRIP Strip字符 IXOFF 开始/停止输入控制使能 IXON 开始/停止输出控制使能 PARMRK 产生奇偶错误 ●输出模式 ●控制模式 标记名 描述 CLOCAL 忽视modem状态行 CREAD 接受使能 CSIZE 每个字节位数 CS5 5位 CS6 6位 CS7 7位 CS8 8位 CSTOPB 发送一种或两个停止位 HUPCL 在最后关闭中挂起 PARENB 奇校验使能 PARODD 奇校验或偶校验 ●本地模式 termios c_lflag 值 标记名 描述 ECHO 响应使能 ECHOE 响应ETASE ECHOK 响应KILL ECHONL 响应’/n’ ICANON 规范输入 IEXTEN 扩展函数使能 ISIG 信号使能 NOFLSH 中断,停止或挂起后关掉flush TOSTOP 为后台输出发送SIGTTOU ●特殊控制字符 这些特殊控制字符值在队列c_cc中定义,分为规范和非规范两种模式。 ●波特率值 3 波特率函数 函数原型:#include<termios.h> speed_t cfgetospeed(const struct termios *termios_p); int cfsetospeed (struct termios *termios_p,speed_t speed); speed_t cfgetispeed(const struct termios *termios_p); int cfsetispeed(struct termios *termios_p,speed_t speed); 函数功能:以上这些接口被用来在termios构造获得和设定输入与输出波特率值。 7.2 基本终端接口控制函数 1 获得并设定状态 函数原型:#include<termios.h> int tcgetattr(int fildes,struct termios *termios_p); int tcsetattr(int fildes,int optional_actions,const struct termios * termios_p); 函数功能:tcgetattr()获得fildes所拟定文献参数并将其存储在t’erops_p所指向构造中;tcsetattr()将设立参数。 2 行控制函数 函数原型:#include<termios.h> int tcsendbreak(int fildes,int duration); int tcdrain(int fildes); int tcflush(int fildes,int queue_selector); int tcflow(int fildes,int action)’ 函数功能:如果终端使用异步持续数据传播,tcsendbreak()引起在一段时间内持续‘0’位传播;tcdrain()等待直到输出传播完毕;tcflush()和tcflow()是溢出有关解决。(参照第212页) 3获得前台进程组ID 函数原型:#include<sys/types.h> pid_t tgetpgrp(int fildes); 功能: 4 设立前台进程组ID 函数原型:#include<sys/types.h> int tcsetpgrp(int fildes,pid_t pgrp_id); 功能:如果进程支持控制终端,该函数设立与终端有关前台进程组ID到pgrp_id。 第八章基于C语言服务 8.1 参照C语言规范 1 时间函数扩展 2 setlocale()函数扩展- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POSIX 统一标准 理解 专业 资料
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文