博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初始化函数1
阅读量:6148 次
发布时间:2019-06-21

本文共 1307 字,大约阅读时间需要 4 分钟。

1. 字节排序函数:

1.1 大端小端:

  1. 参考其他笔记或资料,一句话:低地址低位为小端.

1.2 常用函数:

#include 
uint16_t htons(uint16_t va);uint32_t htonl(uint32_t va);uint16_t ntohs(uint16_t va);uint32_t ntohl(uint32_t va);

1. 作用:转换字节序,常用作端口字节序转换.

2. 符号意义: h代表host,n代表net,s代表16位,l32位.

  ps: l64位中仍然是32位,最好别理解为long.

3. 实现细节: 在大端机器中,这些函数定义为空宏.

2. 字节操纵函数

2.1 源自Berkeley的函数:

#include <strings.h>

void bzero(void *dest, size_t nbytes);

void bcopy(const void *src, void *dest, size_t nbytes);

void bcmp(const void *ptr1, const void *ptr2, size_t nbytes);

2.2 ANSI C函数:

#include <strings.h>

void *memset(void *dest, int c, size_t len);

void *memcpy(void *dest, const void *src, size_t nbytes);

void memcmp(const void *ptr1, const void *ptr2, size_t nbytes);

2.3 两组函数:

copy类型函数的源指针和目标指针顺序相反.

memcpy不能处理内存重叠,bcopymemmove都可以.

cmp函数,ptr1>pt2返回>0.

3. 地址转换函数:

使用inet_pton和inet_ntop兼容ipv4和ipv6.#include 
int inet_pton(int family, const char *strptr, void *addrptr)const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len)

1. 作用: 转换二进制网络序和我们熟悉的表达式.

2. 符号意义: ppresentation,nnumeric.

3. 特点: 适用于IPv46.

4. 细节: 字符串的长度在<netinet/in.h>中有定义:

#define INET_ADDRSTRLEN 16

#define INET6_ADDRSTRLEN 46

如果len太小,会返回空指针,errno=ENOSPC.

5. 历史: 曾经使用inet_aton等函数,现在这两个函数更通用.

转载于:https://www.cnblogs.com/willaty/p/8006740.html

你可能感兴趣的文章
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
redhat6.1下chrome的安装
查看>>
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>
类与成员变量,成员方法的测试
查看>>
活在当下
查看>>
每天进步一点----- MediaPlayer
查看>>
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>
android apk 逆向中常用工具一览
查看>>
MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
查看>>
Skip List——跳表,一个高效的索引技术
查看>>
Yii2单元测试初探
查看>>
五、字典
查看>>