77范文网 - 专业文章范例文档资料分享平台

Linux系统API函数手册(4)

来源:网络收集 时间:2019-03-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

sigemptyset()用来将参数set信号集初始化并清空。 返回值

执行成功则返回0,如果有错误则返回-1。 错误代码

EFAULT 参数set指针地址无法存取 5、sigfillset(将所有信号加入至信号集) 头文件

1 #include

定义函数

1 int sigfillset(sigset_t * set);

函数说明

sigfillset()用来将参数set信号集初始化,然后把所有的信号加入到此信号集里。 返回值

执行成功则返回0,如果有错误则返回-1。 附加说明

EFAULT 参数set指针地址无法存取

6、sigismember(测试某个信号是否已加入至信号集里) 头文件

1 #include

定义函数

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

定义函数

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

定义函数

1 unsigned int sleep(unsigned int seconds);

函数说明

sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。 返回值

若进程暂停到参数seconds 所指定的时间则返回0,若有信号中断则返回剩余秒数。 9、perror(打印出错误原因信息字符串) 头文件

1 #include

定义函数

1 void perror(const char *s);

函数说明

perror()用来将上一个函数发生错误的原因输出到标准错误(stderr)。参数s所指的字符串会先打印出,后面再加上错误原因字符串。此

错误原因依照全局变量errno的值来决定要输出的字符串。 返回值

10、mkfifo(建立具名管道) 头文件

1 #include 2 #include

定义函数

1 int mkfifo(const char * pathname,mode_t mode);

函数说明

mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode%~umask),因此 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(关闭管道I/O) 头文件

1 #include

定义函数

1 int pclose(FILE * stream);

函数说明

pclose()用来关闭由popen所建立的管道及文件指针。参数stream为先前由popen()所返回的文件指针。 返回值

返回子进程的结束状态。如果有错误则返回-1,错误原因存于errno中。 错误代码

ECHILD pclose()无法取得子进程的结束状态。

12、pipe(建立管道) 头文件

1 #include

定义函数

1 int pipe(int filedes[2]);

函数说明

pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端,filedes[1]则为管道的写入端。 返回值

若成功则返回零,否则返回-1,错误原因存于errno中。 错误代码

EMFILE 进程已用完文件描述词最大量。 ENFILE 系统已无文件描述词可用。 EFAULT 参数filedes数组地址不合法。 13、popen(建立管道I/O) 头文件

1 #include

定义函数

1 FILE * popen( const char * command,const char * type);

函数说明

popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代

表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此

文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,所有使用文件指针(FILE*)操作的函数也都可以使用,除 了fclose()以外。 返回值

若成功则返回文件指针,否则返回NULL,错误原因存于errno中。 错误代码

EINVAL参数type不合法。 注意事项

在编写具SUID/SGID权限的程序时请尽量避免使用popen(),popen()会继承环境变量,通过环境变量可能会造成系统安全的问题。

(五)接口处理篇

1、accept(接受socket连线) 头文件

1 #include 2 #include

定义函数

1 int accept(int s,struct sockaddr * addr,int * addrlen);

函数说明

accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过,当有连线进来时 accept()会返回一个新的

socket处理代码,往后的数据传送与读取就是经由新的socket处理,而原来参数s的socket能继续使用 accept()来接受新的连线要求。连

线成功时,参数addr所指的结构会被系统填入远程主机的地址数据,参数addrlen为scokaddr的结构长度。关于结构sockaddr的定义请参 考bind()。 返回值

成功则返回新的socket处理代码,失败返回-1,错误原因存于errno中。 错误代码

EBADF 参数s 非合法socket处理代码。

EFAULT 参数addr指针指向无法存取的内存空间。 ENOTSOCK 参数s为一文件描述词,非socket。 EOPNOTSUPP 指定的socket并非SOCK_STREAM。 EPERM 防火墙拒绝此连线。 ENOBUFS 系统的缓冲内存不足。 ENOMEM 核心内存不足。 2、bind(对socket定位) 头文件

1 #include 2 #include

定义函数

1 int bind(int sockfd,struct sockaddr * my_addr,int addrlen);

函数说明

bind()用来设置给参数sockfd的socket一个名称。此名称由参数my_addr指向一sockaddr结构,对于不同的socket domain定义了一个通 用的数据结构

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux系统API函数手册(4)在线全文阅读。

Linux系统API函数手册(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/509403.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: