我想在mac os上开发一个网络内核扩展我在函数sf_data_in()中得到了一些gzip格式的数据我包含了名为<libkern/zlib.h>
的头文件,在用“kextload”加载kext后,mac在运行下面的代码时崩溃。
z_stream strm;
bzero(&strm, sizeof(z_stream));
if (Z_OK != inflateInit2(&strm))
{
printf("inflateInit error.\n");
inflateEnd(&strm);
return 0;
}
谁能告诉我如何在内核编程中使用它最好给一些样品。
非常感谢。
最佳答案
您传递给inflateInit2()
的参数数目错误,它需要指向流的指针和以位为单位的窗口大小如果不希望设置后者,请改用inflateInit()
。
您还可以使用zlib、ppp_deflate.c、ipcomp_core.c查看一些内核代码