欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    Linux系统API函数手册.docx

    • 资源ID:3160803       资源大小:53.26KB        全文页数:44页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Linux系统API函数手册.docx

    Linux系统API函数手册文件操作篇 1、creat 头文件 1 #include<sys/types.h> 2 #include<sys/stat.h> 3 #include<fcntl.h> 定义函数 1 int creat(const char * pathname, mode_tmode); 函数说明 参数pathname指向欲建立的文件路径字符串。creat相当于使用下列的调用方式调用open 1 open(const char * pathname ,(O_CREAT|O_WRONLY|O_TRUNC); 错误代码 关于参数mode请参考open函数。 返回值 creat会返回新的文件描述词,若有错误发生则会返回-1,并把错误代码设给errno。 EEXIST 参数pathname所指的文件已存在。 EACCESS 参数pathname 所指定的文件不符合所要求测试的权限 EROFS 欲打开写入权限的文件存在于只读文件系统内 EFAULT 参数pathname 指针超出可存取的内存空间 EINVAL 参数mode 不正确。 ENAMETOOLONG 参数pathname太长。 ENOTDIR 参数pathname为一目录 ENOMEM 核心内存不足 ELOOP 参数pathname有过多符号连接问题。 EMFILE 已达到进程可同时打开的文件数上限 ENFILE 已达到系统可同时打开的文件数上限 附加说明 creat无法建立特别的装置文件,如果需要请使用mknod。 2、open 头文件 1 #include<sys/types.h> 2 #include<sys/stat.h> 3 #include<fcntl.h> 定义函数 1 int open( const char * pathname, int flags); 2 int open( const char * pathname,int flags, mode_t mode); 函数说明 参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的旗标: O_RDONLY 以只读方式打开文件 O_WRONLY 以只写方式打开文件 O_RDWR 以可读写方式打开文件。上述三种旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用OR(|)运算符组合。 O_CREAT 若欲打开的文件不存在则自动建立该文件。 O_EXCL 如果O_CREAT 也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误。此外,若O_CREAT与O_EXCL同时设置,并且欲打开的文件为符号连接,则会打开文件失败。 O_NOCTTY 如果欲打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机。 O_TRUNC 若文件存在并且以可写的方式打开时,此旗标会令文件长度清为0,而原来存于该文件的资料也会消失。 O_APPEND 当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。 O_NONBLOCK 以不可阻断的方式打开文件,也就是无论有无数据读取或等待,都会立即返回进程之中。 O_NDELAY 同O_NONBLOCK。 O_SYNC 以同步的方式打开文件。 O_NOFOLLOW 如果参数pathname 所指的文件为一符号连接,则会令打开文件失败。 O_DIRECTORY 如果参数pathname 所指的文件并非为一目录,则会令打开文件失败。 此为Linux2.2以后特有的旗标,以避免一些系统安全问题。参数mode 则有下列数种组合,只有在建立新文件时才会生效,此外真正建文件时的权限会受到umask值所影响,因此该文件权限应该为。 S_IRWXU00700 权限,代表该文件所有者具有可读、可写及可执行的权限。 S_IRUSR 或S_IREAD,00400权限,代表该文件所有者具有可读取的权限。 S_IWUSR 或S_IWRITE,00200 权限,代表该文件所有者具有可写入的权限。 S_IXUSR 或S_IEXEC,00100 权限,代表该文件所有者具有可执行的权限。 S_IRWXG 00070权限,代表该文件用户组具有可读、可写及可执行的权限。 S_IRGRP 00040 权限,代表该文件用户组具有可读的权限。 S_IWGRP 00020权限,代表该文件用户组具有可写入的权限。 S_IXGRP 00010 权限,代表该文件用户组具有可执行的权限。 S_IRWXO 00007权限,代表其他用户具有可读、可写及可执行的权限。 S_IROTH 00004 权限,代表其他用户具有可读的权限 S_IWOTH 00002权限,代表其他用户具有可写入的权限。 S_IXOTH 00001 权限,代表其他用户具有可执行的权限。 返回值 若所有欲核查的权限都通过了检查则返回0 值,表示成功,只要有一个权限被禁止则返回-1。 错误代码 EEXIST 参数pathname 所指的文件已存在,却使用了O_CREAT和O_EXCL旗标。 EACCESS 参数pathname所指的文件不符合所要求测试的权限。 EROFS 欲测试写入权限的文件存在于只读文件系统内。 EFAULT 参数pathname指针超出可存取内存空间。 EINVAL 参数mode 不正确。 ENAMETOOLONG 参数pathname太长。 ENOTDIR 参数pathname不是目录。 ENOMEM 核心内存不足。 ELOOP 参数pathname有过多符号连接问题。 EIO I/O 存取错误 3、close 头文件 1 #include<unistd.h> 定义函数 1 int close(int fd); 函数说明 当使用完文件后若已不再需要则可使用close关闭该文件,二close会让数据写回磁盘,并释放该文件所占用的资源。参数fd为先前由open或creat所返回的文件描述词。 返回值 若文件顺利关闭则返回0,发生错误时返回-1。 错误代码 EBADF 参数fd 非有效的文件描述词或该文件已关闭。 附加说明 虽然在进程结束时,系统会自动关闭已打开的文件,但仍建议自行关闭文件,并确实检查返回值。 4、read 头文件 1 #include<unistd.h> 定义函数 1 ssize_t read(int fd,void * buf ,size_t count); 函数说明 read会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。 附加说明 如果顺利read会返回实际读到的字节数,最好能将返回值与参数count 作比较,若返回的字节数比要求读取的字节数少,则有可能读到了文件尾、从管道(pipe)或终端机读取,或者是read被信号中断了读取动作。当有错误发生时则返回-1,错误代码存入errno中,而文件读写位置则无法预期。 错误代码 EINTR 此调用被信号所中断。 EAGAIN 当使用不可阻断I/O 时,若无数据可读取则返回此值。 EBADF 参数fd 非有效的文件描述词,或该文件已关闭。 5、write 头文件 1 #include<unistd.h> 定义函数 1 ssize_t write (int fd,const void * buf,size_t count); 函数说明 write会把参数buf所指的内存写入count个字节到参数fd所指的文件内。当然,文件读写位置也会随之移动。 返回值 如果顺利write会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。 错误代码 EINTR 此调用被信号所中断。 EAGAIN 当使用不可阻断I/O 时,若无数据可读取则返回此值。 EADF 参数fd非有效的文件描述词,或该文件已关闭。 6、flock 头文件 1 #include<sys/file.h> 定义函数 1 int flock(int fd,int operation); 函数说明 flock会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。 参数 operation有下列四种情况: LOCK_SH 建立共享锁定。多个进程可同时对同一个文件作共享锁定。 LOCK_EX 建立互斥锁定。一个文件同时只有一个互斥锁定。 LOCK_UN 解除文件锁定状态。 LOCK_NB 无法建立锁定时,此操作可不被阻断,马上返回进程。通常与LOCK_SH或LOCK_EX 做OR(|)组合。 单一文件无法同时建立共享锁定和互斥锁定,而当使用dup或fork时文件描述词不会继承此种锁定。 返回值 返回0表示成功,若有错误则返回-1,错误代码存于errno。 7、lseek 头文件 1 #include<sys/types.h> 2 #include<unistd.h> 定义函数 1 off_t lseek(int fildes,off_t offset ,int whence); 函数说明 每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头,若是以附加的方式打开文件(如O_APPEND),则读写位置会指向文件尾。当read或write时,读写位置会随之增加,lseek便是用来控制该文件的读写位置。参数fildes 为已打开的文件描述词,参数offset 为根据参数whence来移动读写位置的位移数。 参数 whence为下列其中一种: SEEK_SET 参数offset即为新的读写位置。 SEEK_CUR 以目前的读写位置往后增加offset个位移量。 SEEK_END 将读写位置指向文件尾后再增加offset个位移量。 当whence 值为SEEK_CUR 或SEEK_END时,参数offet允许负值的出现。 下列是教特别的使用方式: 1) 欲将读写位置移到文件开头时:lseek; 2) 欲将读写位置移到文件尾时:lseek; 3) 想要取得目前文件位置时:lseek; 返回值 当调用成功时则返回目前的读写位置,也就是距离文件开头多少个字节。若有错误则返回-1,errno 会存放错误代码。 附加说明 Linux系统不允许lseek对tty装置作用,此项动作会令lseek返回ESPIPE。 8、fcntl 头文件 1 #include<unistd.h> 2 #include<fcntl.h> 定义函数 1 int fcntl(int fd , int cmd); 2 int fcntl(int fd,int cmd,long arg); 3 int fcntl(int fd,int cmd,struct flock * lock); 函数说明 fcntl用来操作文件描述词的一些特性。参数fd代表欲设置的文件描述词,参数cmd代表欲操作的指令。 有以下几种情况: F_DUPFD用来查找大于或等于参数arg的最小且仍未使用的文件描述词,并且复制参数fd的文件描述词。执行成功则返回新复制的文件描述词。请参考 dup2。F_GETFD取得close-on-exec旗标。若此旗标的FD_CLOEXEC位为0,代表在调用exec相关函数时文件将不会关闭。 F_SETFD 设置close-on-exec 旗标。该旗标以参数arg 的FD_CLOEXEC位决定。 F_GETFL 取得文件描述词状态旗标,此旗标为open的参数flags。 F_SETFL 设置文件描述词状态旗标,参数arg为新旗标,但只允许O_APPEND、O_NONBLOCK和O_ASYNC位的改变,其他位的改变将不受影响。 F_GETLK 取得文件锁定的状态。 F_SETLK 设置文件锁定的状态。此时flcok 结构的l_type 值必须是F_RDLCK、F_WRLCK或F_UNLCK。如果无法建立锁定,则返回-1,错误代码为EACCES 或EAGAIN。 F_SETLKW F_SETLK 作用相同,但是无法建立锁定时,此调用会一直等到锁定动作成功为止。若在等待锁定的过程中被信号中断时,会立即返回-1,错误代码为EINTR。参数lock指针为flock 结构指针,定义如下 1 struct flcok 2 3 short int l_type; /* 锁定的状态*/ 4 short int l_whence;/*决定l_start位置*/ 5 off_t l_start; /*锁定区域的开头位置*/ 6 off_t l_len; /*锁定区域的大小*/ 7 pid_t l_pid; /*锁定动作的进程*/ 8 ; l_type 有三种状态: F_RDLCK 建立一个供读取用的锁定 F_WRLCK 建立一个供写入用的锁定 F_UNLCK 删除之前建立的锁定 l_whence 也有三种方式: SEEK_SET 以文件开头为锁定的起始位置。 SEEK_CUR 以目前文件读写位置为锁定的起始位置 SEEK_END 以文件结尾为锁定的起始位置。 返回值 成功则返回0,若有错误则返回-1,错误原因存于errno. 9、fgets 头文件 1 include<stdio.h> 定义函数 1 char * fgets(char * s,int size,FILE * stream); 函数说明 fgets用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。 返回值 gets若成功则返回s指针,返回NULL则表示有错误发生。 10、fputs 头文件 1 #include<stdio.h> 定义函数 1 int fputs(const char * s,FILE * stream); 函数说明 fputs用来将参数s所指的字符串写入到参数stream所指的文件内。 返回值 若成功则返回写出的字符个数,返回EOF则表示有错误发生。 内存控制篇 1、calloc 头文件 1 #include <stdlib.h> 定义函数 1 void *calloc(size_t nmemb,size_t size); 函数说明 calloc用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。这和使用下列的方式效果相同:malloc(nmemb*size);不过,在利用calloc配置内存时会将内存内容初始化为0。 返回值 若配置成功则返回一指针,失败则返回NULL。 2、free 头文件 1 #include<stdlib.h> 定义函数 1 void free(void *ptr); 函数说明 参数ptr为指向先前由malloc、calloc或realloc所返回的内存指针。调用free后ptr所指的内存空间便会被收回。假若参数ptr所指的内存空间已被收回或是未知的内存地址,则调用free可能会有无法预期的情况发生。若参数ptr为NULL,则free不会有任何作用。 3、malloc 头文件 1 #include<stdlib.h> 定义函数 1 void * malloc(size_t size); 函数说明 malloc用来配置内存空间,其大小由指定的size决定。 返回值 若配置成功则返回一指针,失败则返回NULL。 范例 void p = malloc(1024); /*配置1k的内存*/ 进程操作篇 1、execl 头文件 1 #include<unistd.h> 定义函数 1 int execl(const char * path,const char * arg,.); 函数说明 execl用来执行参数path字符串所代表的文件路径,接下来的参数代表执行该文件时传递过去的argv(0)、argv1,最后一个参数必须用空指针(NULL)作结束。 返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。 2、execlp 头文件 #include<unistd.h> 定义函数 1 int execlp(const char * file,const char * arg,); 函数说明 execlp会从PATH 环境变量所指的目录中查找符合参数file的文件名,找到后便执行该文件,然后将第二个以后的参数当做该文件的argv0、argv1,最后一个参数必须用空指针(NULL)作结束。 返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。 错误代码 参考execve。 3、execv 头文件 1 #include<unistd.h> 定义函数 1 int execv (const char * path, char * const argv ); 函数说明 execv用来执行参数path字符串所代表的文件路径,与execl不同的地方在于execve只需两个参数,第二个参数利用数组指针来传递给执行文件。 返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。 错误代码 请参考execve。 4、execve 头文件 1 #include<unistd.h> 定义函数 1 int execve(const char * filename,char * const argv ,char * const envp ); 函数说明 execve用来执行参数filename字符串所代表的文件路径,第二个参数系利用数组指针来传递给执行文件,最后一个参数则为传递给执行文件的新环境变量数组。 返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。 错误代码 EACCES 1. 欲执行的文件不具有用户可执行的权限。 2. 欲执行的文件所属的文件系统是以noexec 方式挂上。 3.欲执行的文件或script翻译器非一般文件。 EPERM 1.进程处于被追踪模式,执行者并不具有root权限,欲执行的文件具有SUID 或SGID 位。 2.欲执行的文件所属的文件系统是以nosuid方式挂上,欲执行的文件具有SUID 或SGID 位元,但执行者并不具有root权限。 E2BIG 参数数组过大 ENOEXEC 无法判断欲执行文件的执行文件格式,有可能是格式错误或无法在此平台执行。 EFAULT 参数filename所指的字符串地址超出可存取空间范围。 ENAMETOOLONG 参数filename所指的字符串太长。 ENOENT 参数filename字符串所指定的文件不存在。 ENOMEM 核心内存不足 ENOTDIR 参数filename字符串所包含的目录路径并非有效目录 EACCES 参数filename字符串所包含的目录路径无法存取,权限不足 ELOOP 过多的符号连接 ETXTBUSY 欲执行的文件已被其他进程打开而且正把数据写入该文件中 EIO I/O 存取错误 ENFILE 已达到系统所允许的打开文件总数。 EMFILE 已达到系统所允许单一进程所能打开的文件总数。 EINVAL 欲执行文件的ELF执行格式不只一个PT_INTERP节区 EISDIR ELF翻译器为一目录 ELIBBAD ELF翻译器有问题。 5、execvp 头文件 1 #include<unistd.h> 定义函数 1 int execvp(const char *file ,char * const argv ); 函数说明 execvp会从PATH 环境变量所指的目录中查找符合参数file 的文件名,找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件。 返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。 错误代码 请参考execve。 6、exit 头文件 1 #include<stdlib.h> 定义函数 1 void exit(int status); 函数说明 exit用来正常终结目前进程的执行,并把参数status返回给父进程,而进程所有的缓冲区数据会自动写回并关闭未关闭的文件。 7、_exit 头文件 1 #include<unistd.h> 定义函数 1 void _exit(int status); 函数说明 _exit用来立刻结束目前进程的执行,并把参数status返回给父进程,并关闭未关闭的文件。此函数调用后不会返回,并且会传递SIGCHLD信号给父进程,父进程可以由wait函数取得子进程结束状态。 附加说明 _exit不会处理标准I/O 缓冲区,如要更新缓冲区请使用exit。 8、vfork 头文件 1 #include<unistd.h> 定义函数 1 pid_t vfork(void); 函数说明 vfork会产生一个新的子进程,其子进程会复制父进程的数据与堆栈空间,并继承父进程的用户代码,组代码,环境变量、已打开的文件代码、工作目录和资源限制等。Linux 使用copy-on-write(COW)技术,只有当其中一进程试图修改欲复制的空间时才会做真正的复制动作,由于这些继承的信息是复制而来,并非指相同的内存空间,因此子进程对这些变量的修改和父进程并不会同步。此外,子进程不会继承父进程的文件锁定和未处理的信号。注意,Linux不保证子进程会比父进程先执行或晚执行,因此编写程序时要留意 死锁或竞争条件的发生。 返回值 如果vfork成功则在父进程会返回新建立的子进程代码(PID),而在新建立的子进程中则返回0。如果vfork 失败则直接返回-1,失败原因存于errno中。 错误代码 EAGAIN 内存不足。ENOMEM 内存不足,无法配置核心所需的数据结构空间。 9、getpid 头文件 1 #include<unistd.h> 定义函数 1 pid_t getpid(void); 函数说明 getpid用来取得目前进程的进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。 返回值 目前进程的进程识别码 10、getppid 头文件 1 #include<unistd.h> 定义函数 1 pid_t getppid(void); 函数说明 getppid用来取得目前进程的父进程识别码。 返回值 目前进程的父进程识别码。 11、wait 头文件 1 #include<sys/types.h> 2 #include<sys/wait.h> 定义函数 1 pid_t wait (int * status); 函数说明 wait会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait时子进程已经结束,则wait会立即返回子进程结束状态值。子进程的结束状态值会由参数status 返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则 参数 status可以设成NULL。子进程的结束状态值请参考waitpid。 返回值 如果执行成功则返回子进程识别码(PID),如果有错误发生则返回-1。失败原因存于errno中。 12、waitpid 头文件 1 #include<sys/types.h> 2 #include<sys/wait.h> 定义函数 1 pid_t waitpid(pid_t pid,int * status,int options); 函数说明 waitpid会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait时子进程已经结束,则wait会立即返回子进程结束状态值。子进程的结束状态值会由参数status返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数status可以设成 NULL。参数pid为欲等待的子进程识别码,其他数值意义如下: pid<-1 等待进程组识别码为pid绝对值的任何子进程。 pid=-1 等待任何子进程,相当于wait。 pid=0 等待进程组识别码与目前进程相同的任何子进程。 pid>0 等待任何子进程识别码为pid的子进程。 参数option可以为0 或下面的OR 组合 WNOHANG 如果没有任何已经结束的子进程则马上返回,不予以等待。 WUNTRACED 如果子进程进入暂停执行情况则马上返回,但结束状态不予以理会。 子进程的结束状态返回后存于status,底下有几个宏可判别结束情况 WIFEXITED(status)如果子进程正常结束则为非0值。 WEXITSTATUS(status)取得子进程exit返回的结束代码,一般会先用WIFEXITED 来判断是否正常结束才能使用此宏。 WIFSIGNALED(status)如果子进程是因为信号而结束则此宏值为真 WTERMSIG(status)取得子进程因信号而中止的信号代码,一般会先用WIFSIGNALED 来判断后才使用此宏。 WIFSTOPPED(status)如果子进程处于暂停执行情况则此宏值为真。一般只有使用WUNTRACED 时才会有此情况。 WSTOPSIG(status)取得引发子进程暂停的信号代码,一般会先用WIFSTOPPED 来判断后才使用此宏。 返回值 如果执行成功则返回子进程识别码(PID),如果有错误发生则返回-1。失败原因存于errno中。 信号处理篇 1、sigaction 头文件 1 #include<signal.h> 定义函数 1 int sigaction(int signum,const struct sigaction *act ,struct sigaction *oldact); 函数说明 sigaction会依参数signum指定的信号编号来设置该信号的处理函数。参数signum可以指定SIGKILL和SIGSTOP以外的所有信号。 如参数结构sigaction定义如下 1 struct sigaction 2 3 void (*sa_handler) (int); 4 sigset_t sa_mask; 5 int sa_flags; 6 void (*sa_restorer) (void); 7 sa_handler此参数和signal的参数handler相同,代表新的信号处理函数,其他意义请参考signal。 sa_mask 用来设置在处理该信号时暂时将sa_mask 指定的信号搁置。 sa_restorer 此参数没有使用。 sa_flags 用来设置信号处理的其他相关操作,下列的数值可用。 OR 运算组合 A_NOCLDSTOP : 如果参数signum为SIGCHLD,则当子进程暂停时并不会通知父进程 SA_ONESHOT/SA_RESETHAND:当调用新的信号处理函数前,将此信号处理方式改为系统预设的方式。 SA_RESTART:被信号中断的系统调用会自行重启 SA_NOMASK/SA_NODEFER:在处理此信号未结束前不理会此信号的再次到来。 如果参数oldact不是NULL指针,则原来的信号处理方式会由此结构sigaction 返回。 返回值 执行成功则返回0,如果有错误则返回-1。 错误代码 EINVAL 参数signum 不合法, 或是企图拦截SIGKILL/SIGSTOPSIGKILL信号 EFAULT 参数act,oldact指针地址无法存取。 EINTR 此调用被中断 2、sigaddset 头文件 1 #include<signal.h> 定义函数 1 int sigaddset(sigset_t *set,int signum); 函数说明 sigaddset用来将参数signum 代表的信号加入至参数set 信号集里。 返回值 执行成功则返回0,如果有错误则返回-1。 错误代码 EFAULT 参数set指针地址无法存取 EINVAL 参数signum非合法的信号编号 3、sigdelset 头文件 1 #include<signal.h> 定义函数 1 int sigdelset(sigset_t * set,int signum); 函数说明 sigdelset用来将参数signum代表的信号从参数set信号集里删除。 返回值 执行成功则返回0,如果有错误则返回-1。 错误代码 EFAULT 参数set指针地址无法存取 EINVAL 参数signum非合法的信号编号 4、sigemptyset 头文件 1 #include<signal.h> 定义函数 1 int sigemptyset(sigset_t *set); 函数说明 sigemptyset用来将参数set信号集初始化并清空。 返回值 执行成功则返回0,如果有错误则返回-1。 错误代码 EFAULT 参数set指针地址无法存取 5、sigfillset 头文件 1 #include<signal.h> 定义函数 1 int sigfillset(sigset_t * set); 函数说明 sigfillset用来将参数set信号集初始化,然后把所有的信号加入到此信号集里。 返回值 执行成功则返回0,如果有错误则返回-1。 附加说明 EFAULT 参数set指针地址无法存取 6、sigismember 头文件 1 #include<signal.h> 定义函数 1 int sigismember(const sigset_t *set,int signum); 函数说明 sigismember用来测试参数signum 代表的信号是否已加入至参数set信号集里。如果信号集里已有该信号则返回1,否则返回0。 返回值 信号集已有该信号则返回1,没有则返回0。如果有错误则返回-1。 错误代码 EFAULT 参数set指针地址无法存取 EINVAL 参数signum 非合法的信号编号 7、signal 头文件 1 #include<signal.h> 定义函数 1 void (*signal(int signum,void(* handler)(int)(int); 函数说明 signal会依参数signum 指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数handler指定的函数执行。如果 参数handler不是函数指针,则必须是下列两个常数之一: SIG_IGN 忽略参数signum指定的信号。 SIG_DFL 将参数signum 指定的信号重设为核心预设的信号处理方式。 关于信号的编号和说明,请参考附录D 返回值 返回先前的信号处理函数指针,如果有错误则返回SIG_ERR(-1)。 附加说明 在信号发生跳转到自定的handler处理函数执行后,系统会自动将此处理函数换回原来系统预设的处理方式,如果要改变此操作请改用 sigaction。 8、sleep 头文件 1 #include<unistd.h> 定义函数 1 unsigned int sleep(unsigned int seconds); 函数说明 sleep会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。 返回值 若进程暂停到参数seconds 所指定的时间则返回0,若有信号中断则返回剩余秒数。 9、perror 头文件 1 #include<stdio.h> 定义函数 1 void perror(const char *s); 函数说明 perror用来将上一个函数发生错误的原因输出到标准错误(stderr)。参数s所指的字符串会先打印出,后面再加上错误原因字符串。此 错误原因依照全局变量errno的值来决定要输出的字符串。 返回值 10、mkfifo 头文件 1 #include<sys/types.h> 2 #include<sys/stat.h> 定义函数 1 int mkfifo(const char * pathname,mode_t mode); 函数说明 mkfifo会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限,因此 umask值也会 影响到FIFO文件的权限。Mkfifo建立的FIFO文件其他进程都可以用读写一般文件的方式存取。当使用open来打开 FIFO文件时, O_NONBLOCK旗标会有影响 1、当使用O_NONBLOCK 旗标时,打开FIFO 文件来读取的操作会立刻返回,但是若还没有其他进程打开FIFO 文件来读取,则写入的操作会 返回ENXIO 错误代码。 2、没有使用O_NONBLOCK 旗标时,打开FIFO 来读取的操作会等到其他进程打开FIFO文件来写入才正常返回。同样地,打开FIFO文件来写 入的操作会等到其他进程打开FIFO 文件来读取后才正常返回。 返回值 若成功则返回0,否则返回-1,错误原因存于errno中。 错误代码 EACCESS 参数pathname所指定的目录路径无可执行的权限 EEXIST 参数pathname所指定的文件已存在。 ENAMETOOLONG 参数pathname的路径名称太长。 ENOENT 参数pathname包含的目录不存在 ENOSPC 文件系统的剩余空间不足 ENOTDIR 参数pathname路径中的目录存在但却非真正的目录。 EROFS 参数pathname指定的文件存在于只读文件系统内。 11、pclose 头文件 1 #include<stdio.h> 定义函数 1 int pclose(FILE * stream); 函数说明 pclose用来关闭由popen所建立的管道及文件指针。参数stream为先前由popen所返回的文件指针。 返回值 返回子进程的结束状态。如果有错误则返回-1,错误原因存于errno中。 错误代码 ECHILD pclose无法取得子进程的结束状态。 12、pipe 头文件 1 #include<unist

    注意事项

    本文(Linux系统API函数手册.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开