Adif Versions Save

用标准c语言开发的常用数据结构和算法基础库,作为应用程序开发接口基础库,为编写高性能程序提供便利,可极大地缩短软件项目的开发周期,提升工程开发效率,并确保软件系统运行的可靠性、稳定性。

v2.6.30

2 years ago
  1. Added one entry para to function json_iter;
  2. Added releasing mechanism for buffer pointer in chunk structure;

本版本修订的内容如下:

  1. 为json_iter函数增加了一个入口参数valind,方便获取到数组型数据的各个结果;
  2. 在chunk数据结构中为buffer pointer类型数据增加了资源释放机制;

v2.6.29

2 years ago
  1. Added item deleting functions in JSon library such as json_item_del, json_del, json_mdel;
  2. Fixed the bug in json_strip function: incorrect handling when regular character followed back-slash;
  3. Added sock_pair_create and pipe_create functions in tsock library;

本版本修订的内容如下:

  1. JSon库增加了单项和嵌套子项删除接口,json_item_del, json_del, json_mdel;
  2. 修订了json_strip函数的bug:字符串中含有带反斜杠的普通字符的处理;
  3. 在tsock库中增加了socket_pair_create函数和pipe_create函数;

v2.6.28

2 years ago
  1. Modified the parameters of tcp_listen function to support the listen service of multiple IP-addresses found b y system call getaddrinfo;
  2. Added the handling of multiple local ip address in udp_listen function such as dual-stack of IPv4 and IPv6;
  3. Fixed the bug that not accumulated sending length when returning error from sendfile call in FreeBSD;
  4. Updated the data structure and implementation of nativefile;
  5. Fixed the interface definition of frag_pack_contain function in fragmented datapack management;
  6. Added the acquiring of local file handle in chunk_vec_get function;
  7. Fixed the check and handle of compatibility for Windows OS;

本版本修订的内容如下:

  1. tcp_listen中使用了getaddrinfo系统调用,可能出现当前系统多个IP地址都需要被监听的情况,其中最常见的情况是同一个 网卡上配置了IPv4和IPv6地址,需要对每个地址来启动监听服务。本次修改了tcp_listen接口,允许多个地址的监听被启动;
  2. 增加了udp_listen中多IP地址的处理,譬如IPv4和IPv6双栈情形;
  3. 修改了FreeBSD系统中使用sendfile发送文件数据时,如果返回错误,没有将实际发送数据长度累计起来的Bug;
  4. 更新了nativefile文件访问数据结构字段和函数实现;
  5. 修订了碎片数据包管理中函数frag_pack_contain的接口定义;
  6. 在数据块chunk设施的chunk_vec_get函数中增加获取Windows系统的本地文件句柄;
  7. 修订了Windows版本的兼容性判断和处理;

v2.6.26

2 years ago
  1. Compiled and tested the source in FreeBSD, solved the incompatibility of system call;
  2. Fixed the incompatibility of sendfile system call between Linux and FreeBSD;
  3. Using ioctl to get the local ip and mac address in Linux, but getifaddrs in FreeBSD;
  4. Removed the code fraction about calling ioperm, inb, outb in FreeBSD.

本版本修订的内容如下:

  1. 在FreeBSD系统下完成了编译和调试,解决了系统调用接口的不兼容问题;
  2. 解决了FreeBSD下的sendfile系统调用不兼容Linux系统的bug;
  3. 在获取本机IP地址、MAC地址时,Linux使用ioctl系统调用,FreeBSD下使用getifaddrs系统调用;
  4. 解决了FreeBSD下不支持ioperm, inb, outb等硬件接口API访问问题;

v2.6.25

2 years ago

Fixed the bugs running in Windows, listed as following:

  1. When converting 64-bit integer value to string with sprintf, the formats %lld, %llu, %llx should be changed to %I64d, %I64u, %I64x
  2. The implementation such as acquiring of native file attributes, reading, writing, seeking, etc., adopts Win32 native API;
  3. The Windows file mapping is used for operations of high perfromance liking Linux mmap;
  4. The ep_sockaddr_t structure replaced the common struct sockaddr for calling failure of Windows API, additionally compatible with IPv4 and IPv6;
  5. Implemented writev and sendfile of Windows version (not the best choice)

修订了在Windows环境下运行时的各种bug,主要包括:

  1. 对于64位整型值通过sprintf等打印函数转换成字符串时,不能使用%lld, %llu, %llx等格式, 而是改成%I64d, %I64u, %I64x等格式;
  2. 本地文件的属性读取、读数据、写数据、定位操作,全部采用Win32 API函数来实现;
  3. 将文件内容采用Win32内存映像API进行快速读处理;
  4. 在accept和recvfrom等网络接口函数中,采用ep_sockaddr_t结构来接收peer端的地址,可兼容IPv4和IPv6的地址形式;
  5. 实现Windows版本的writev和sendfile,不一定是最优方案;

v2.6.24

2 years ago
  1. Optimized management of memory unit in bpool_t structure: the quantities of memory unit allocated will rise to the maximum value during peak time, and should roll back when visits go back to normal level. the default quantity of memory unit is restored by releasing idle units.
  2. Solved compatibility of all API functions with Windows OS.
  3. Fixed the bugs of JSon object decoding and encoding in JSon library.
  4. Added native implementation based Win32 API to nativefile.c.
  5. Added memory mapping for Windows version in chunk.c, fileop.c

v2.6.22

2 years ago
  1. Buf fixed: when only one member in Array, Array disappeared during JSON encoding;
  2. Add the retrieving interfaces to JSON objects by Multiple-layers keys;
  3. Reserved json_get_xxx by single-layer key and index of multiple value object;
  4. extended functions by adopting native API in fileop.c for WIN32 support;

v2.6.20

3 years ago

add new functions to chunk.c add script/reply-script handling for JSon

v2.6.18

3 years ago

add a new tcp connection building function; add the reading interface of cpu core number; bugs fixed;

v2.6.16

3 years ago

The latest version of adif library is 2.6.16. Hope you enjoy it!