我在我的char* s = "pratik"上调用了两个函数:
#include <zlib.h> int main() { char *s = "pratik"; printf("%xn",crc32(0x80000000,s,strlen(s))); return 0; }
输出:66fa3c99
内核代码:
在RaspBerry Pi的Linux环境中出现Windows Forms错误
将unicode UTF-8string存储在std :: string中
使用TPACKET_V2时,Vlan ID设置为0
套接字事件如何传播/转换为epoll?
为Pro Micro编写Windows驱动程序
#include <linux/crc32.h> int main() { char *s = "pratik"; u32 checksum = crc32(0x80000000,strlen(s)); printk("nChecksum --> %x",checksum); return checksum; }
输出:
校验和 – > d7389d3a
为什么相同string的校验和的值不同?
GetSystemTimeZones缺lessGMT标准时间
在C#中忽略无效的邮件服务器证书
Visual Studio 2012:从现有源代码创build项目
如何在Linux上的C / C + +与ipv6 udp套接字组播?
似乎有人被标准以太网(PKZIP,ITU V.42等等)CRC-32做了事前和事后排斥或者带有0xffffffff的事实感到困扰。 所以Linux内核中的版本就没有这个功能了,而且希望应用程序能够这样做。 去搞清楚。
无论如何,您可以使用(非标准)Linux crc32()来获得与(正确的)zlib crc32()相同的结果,因此:
crc_final = crc32(crc_initial ^ 0xffffffff,buf,len) ^ 0xffffffff;
事实上,完全相同的代码将允许您使用zlib crc32()来复制Linux crc32() 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。