#api函数

UNIX网络编程读书笔记:readv和writev函数

这两个函数类似于read和write,不过readv和writev允许单个系统调用读入到或写出自一个或多个缓冲区。这些操作分别称为分散读(scatterread)和集中写(gatherwrite),因为来自读操作的输入数据被分散到多个应用缓冲区中,而来自应用缓冲区的输出数据则被集中提供给单个写操作。#include&l...

UNIX网络编程读书笔记:recv和send函数

这两个函数类似于标准的read和write函数,不过需要一个额外的参数。#include<sys/socket.h>ssize_trecv(intsockfd,void*buff,size_tnbytes,intflags);ssize_tsend(intsockfd,constvoid*buff,size...

UNIX网络编程读书笔记:poll函数

poll函数提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。poll函数原型#include<poll.h>intpoll(structpollfd*fdarray,unsignedlongnfds,inttimeout);返回:就绪描述字的个数,0——超时,-1——出错poll函数...

UNIX网络编程读书笔记:pselect函数

函数原型pselect函数是由POSIX发明的,其原型如下:#include<sys/select.h>#include<signal.h>#include<time.h>intpselect(intmaxfdpl,fd_set*readset,fd_set*writeset,fd_...

UNIX网络编程读书笔记:shutdown函数

终止网络连接的通常方法是调用close函数。不过close有两个限制,却可以使用shutdown来避免。close把描述字的引用计数减1,仅在该计数变为0时才关闭套接口。使用shutdown可以不管引用计数就激发TCP的正常连接终止序列(由FIN开始的四个分节).close终止数据传送的两个方向:读和写。既然TCP连接...

select使用实例——str_cli函数(修订版)

我们可以使用select函数重写http://www.cnblogs.com/nufangrensheng/p/3587962.html中的str_cli函数,这样服务器进程一终止,客户就能马上得到通知。早先那个版本的问题在于:当套接口上发生某些事件时,客户可能阻塞于fgets调用。新版本改为阻塞于select调用,等...

UNIX网络编程读书笔记:select函数

select函数概况:select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它。作为一个例子,我们可以调用select,告知内核仅在下列情况发生时才返回:(1)集合{1,4,5}中的任何描述字准备好读,或(2)集合{2,7}中的任何描述字准备好写,或(3)集...

协议名称处理函数xxxprotoxxx()

为了方便操作,Linux提供了一组用于查询协议的值及名称的函数。xxxprotoxxx()函数:上面的函数对文件/etc/protocols中的记录进行操作,文件中记录了协议的名称、值和别名等值,与structprotoent的定义一致。 使用协议族函数的例子:首先,使用setprotoent(1)打开文件/...

UNIX网络编程读书笔记:地址操纵函数

地址格式转换函数:它们在ASCII字符串(人们比较喜欢用的格式)与网络字节序的二进制值(此值存于套接口地址结构中)间转换地址。1、inet_aton、inet_addr、inet_ntoainet_aton、inet_addr和inet_ntoa在点分十进制数串(例如,”206.168.112.96“)与它的32位网络...

UNIX网络编程读书笔记:字节操纵函数

#include<strings.h>voidbzero(void*dest,size_tnbytes);voidbcopy(constvoid*src,void*dest,size_tnbytes);intbcmp(constvoid*ptr1,constvoid*ptr2,size_tnbytes);返...

字节序及字节排序函数

主机字节序:多于一个字节的数据类型(多字节数据类型)在内存中的存放顺序叫主机字节序。最常见的字节序有两种:小端字节序和大端字节序。小端字节序:LittleEndian,简称LE,将数据的最低字节放在内存的起始位置。也就是说,内存地址较低的字节位存放数据的低位字节,内存地址较高的字节位存放数据的高位字节。可以简记为:高高...
代码星球 ·2021-02-21

终端I/O之行控制函数

下列4个函数提供了终端设备的行控制能力。其中,filedes引用一个终端设备,否则出错返回,errno设置为ENOTTY。#include<termios.h>inttcdrain(intfiledes);inttcflow(intfiledes,intaction);inttcflush(intfiled...
代码星球 ·2021-02-21

终端I/O之波特率函数

波特率(baudrate)是一个以往采用的术语,现在它指的是"位/秒"(bitspersecond)。虽然大多数终端设备对输入和输出使用同一波特率,但是只要硬件许可,可以将它们设置为两个不同值。#include<termios.h> speed_tcfgetispeed(conststructte...
代码星球 ·2021-02-21

进程间通信之popen和pclose函数

常见的操作是创建一个管道连接到另一个进程,然后读其输出或向其输入端发送数据,为此,标准I/O库提供了两个函数popen和pclose。这两个函数实现的操作是:创建一个管道,调用fork产生一个子进程,关闭管道的不使用端,执行一个shell以运行命令,然后等待命令终止。#include<stdio.h>FIL...

高级I/O之readn和writen函数

管道、FIFO以及某些设备,特别是终端、网络和STREAMS设备有下列两种性质:(1)一次read操作所返回的数据可能少于所要求的数据,即使还没有达到文件尾端也可能是这样。这不是一个错误,应当继续读该设备。(2)一次write操作的返回值也可能少于指定输出的字节数。这可能是由若干因素造成的,例如,下游模块的流量控制限制...
代码星球 ·2021-02-21
首页上一页...1415161718...下一页尾页