📅  最后修改于: 2020-11-05 04:54:21             🧑  作者: Mango
本章介绍在进行套接字编程时使用的所有辅助函数。其他帮助器功能在“端口和服务以及网络字节顺序”一章中进行了介绍。
写函数尝试将buf指向的缓冲区中的nbyte字节写入与打开的文件描述符fildes关联的文件中。
您也可以使用send()函数将数据发送到另一个进程。
#include
int write(int fildes, const void *buf, int nbyte);
成功完成后,write()返回实际写入与fildes关联的文件的字节数。此数字永远不会大于nbyte。否则,返回-1。
fildes-它是套接字函数返回的套接字描述符。
buf-它是您要发送的数据的指针。
nbyte-它是要写入的字节数。如果nbyte为0,则如果文件为常规文件,write()将返回0,并且没有其他结果;否则,结果为0。否则,结果不确定。
读取函数尝试从与缓冲区fildes关联的文件中读取nbyte字节到buf指向的缓冲区中。
您还可以使用recv()函数将数据读取到另一个进程。
#include
int read(int fildes, const void *buf, int nbyte);
成功完成后,write()返回实际写入与fildes关联的文件的字节数。此数字永远不会大于nbyte。否则,返回-1。
fildes-它是套接字函数返回的套接字描述符。
buf-它是读取信息的缓冲区。
nbyte-它是要读取的字节数。
fork函数创建一个新进程。称为子进程的新进程将是调用进程(父进程)的精确副本。子进程从父进程继承许多属性。
#include
#include
int fork(void);
成功完成后,fork()将向子进程返回0,并将子进程的进程ID返回给父进程。否则,将-1返回到父进程,不创建任何子进程,并设置errno来指示错误。
无效-这意味着不需要任何参数。
bzero函数将nbyte空字节放入字符串s中。此函数用于将所有套接字结构设置为空值。
void bzero(void *s, int nbyte);
此函数不返回任何内容。
s-它指定必须用空字节填充的字符串。这将指向套接字结构变量。
nbyte-它指定要用空值填充的字节数。这将是套接字结构的大小。
bcmp函数将字节字符串s1与字节字符串s2进行比较。假定两个字符串的长度均为nbyte个字节。
int bcmp(const void *s1, const void *s2, int nbyte);
如果两个字符串相同,则此函数返回0,否则返回1。当nbyte为0时,bcmp()函数始终返回0。
s1-它指定要比较的第一个字符串。
s2-它指定要比较的第二个字符串。
nbyte-它指定要比较的字节数。
bcopy函数nbyte个字节从字符串s1复制到字符串s2。重叠的字符串处理正确。
void bcopy(const void *s1, void *s2, int nbyte);
此函数不返回任何内容。
s1-指定源字符串。
s2v-它指定目标字符串。
nbyte-指定要复制的字节数。
memset函数还用于以bzero相同的方式设置结构变量。看一下下面给出的语法。
void *memset(void *s, int c, int nbyte);
该函数返回一个指向void的指针。实际上,是指向设置存储器的指针,您需要相应地对其进行投射。
s-它指定要设置的源。
c-它指定要在nbyte位置设置的字符。
nbyte-它指定要设置的字节数。