Unix Sockets 简明教程

Unix Socket - Helper Functions

本章描述了所有辅助函数,这些函数在执行套接字编程时使用。其他辅助函数在章节中描述 - Ports and Services 和网络 Byte Orders

The write Function

write 函数尝试将 buf 指向的缓冲区中的 nbyte 字节写入与打开的文件描述符 fildes 关联的文件。

您还可以使用 send() 函数向另一个进程发送数据。

#include <unistd.h>

int write(int fildes, const void *buf, int nbyte);

成功完成后,write() 返回实际写入与 fildes 关联的文件的字节数。此数字永远不会大于 nbyte。否则,返回 -1。

Parameters

  1. fildes − 它是 socket 函数返回的套接字描述符。

  2. buf − 它是指向要发送的数据的指针。

  3. nbyte − 它是要写入的字节数。如果 nbyte 为 0,则如果文件是常规文件,write() 将返回 0 并且没有其他结果;否则,结果未指定。

The read Function

read 函数尝试从与缓冲区 fildes 关联的文件读取 nbyte 字节,并将其读入 buf 指向的缓冲区。

您还可以使用 recv() 函数读取另一个进程的数据。

#include <unistd.h>

int read(int fildes, const void *buf, int nbyte);

成功完成后,write() 返回实际写入与 fildes 关联的文件的字节数。此数字永远不会大于 nbyte。否则,返回 -1。

Parameters

  1. fildes − 它是 socket 函数返回的套接字描述符。

  2. buf − 为读取信息的缓冲区。

  3. nbyte − 它是要读取的字节数。

The fork Function

fork 函数创建一个新进程。称为子进程的新进程将是调用进程(父进程)的确切副本。子进程从父进程继承许多属性。

#include <sys/types.h>
#include <unistd.h>

int fork(void);

成功完成后,fork() 将 0 返回给子进程,并将子进程的进程 ID 返回给父进程。否则,返回 -1 给父进程,不会创建子进程,并设置 errno 指示错误。

Parameters

  1. void − 表示不需要参数。

The bzero Function

bzero 函数在字符串 s 中放置 nbyte 个空字节。此函数用于使用空值设置所有套接字结构。

void bzero(void *s, int nbyte);

此函数不会返回任何内容。

Parameters

  1. s − 它指定了必须用空字节填充的字符串。这将是套接字结构变量的一个点。

  2. nbyte − 它指定了要用空值填充的字节数。这将是套接字结构的大小。

The bcmp Function

bcmp 函数将字节字符串 s1 与字节字符串 s2 进行比较。假设这两个字符串都是 nbyte 字节长。

int bcmp(const void *s1, const void *s2, int nbyte);

如果这两个字符串相同,则此函数返回 0,否则返回 1。如果 nbyte 为 0,bcmp() 函数始终返回 0。

Parameters

  1. s1 − 它指定要比较的第一个字符串。

  2. s2 − 它指定要比较的第二个字符串。

  3. nbyte − 它指定要比较的字节数。

The bcopy Function

bcopy 函数将 nbyte 字节从字符串 s1 复制到字符串 s2。重叠字符串得到了正确的处理。

void bcopy(const void *s1, void *s2, int nbyte);

此函数不会返回任何内容。

Parameters

  1. s1 − 它指定源字符串。

  2. s2v − 它指定目标字符串。

  3. nbyte − 它指定要复制的字节数。

The memset Function

memset 函数还用于像 bzero 一样设置结构变量。请看下面给出的语法。

void *memset(void *s, int c, int nbyte);

此函数返回一个指向 void 的指针;实际上是一个指向已设置内存的指针,并且需要相应地对其进行转换。

Parameters

  1. s − 它指定要设置的源。

  2. c − 它指定要设置在 nbyte 位置的字符。

  3. nbyte − 它指定要设置的字节数。