adif 2.6.25 released
Fixed the bugs running in Windows, listed as following:
- When converting 64-bit integer value to string with sprintf, the formats %lld, %llu, %llx should be changed to %I64d, %I64u, %I64x
- The implementation such as acquiring of native file attributes, reading, writing, seeking, etc., adopts Win32 native API;
- The Windows file mapping is used for operations of high perfromance liking Linux mmap;
- The ep_sockaddr_t structure replaced the common struct sockaddr for calling failure of Windows API, additionally compatible with IPv4 and IPv6;
- Implemented writev and sendfile of Windows version (not the best choice)
修订了在Windows环境下运行时的各种bug,主要包括:
- 对于64位整型值通过sprintf等打印函数转换成字符串时,不能使用%lld, %llu, %llx等格式, 而是改成%I64d, %I64u, %I64x等格式;
- 本地文件的属性读取、读数据、写数据、定位操作,全部采用Win32 API函数来实现;
- 将文件内容采用Win32内存映像API进行快速读处理;
- 在accept和recvfrom等网络接口函数中,采用ep_sockaddr_t结构来接收peer端的地址,可兼容IPv4和IPv6的地址形式;
- 实现Windows版本的writev和sendfile,不一定是最优方案;