为什么我不能在Linux上创build大于2 GB的文件?

我想分享一下我在使用libpcap和snort嗅探高容量(1 GB全双工,最大2 GB的聚合)networking链接时遇到的一些知识。 应用程序将成功侦听所有stream量,但在文件大小达到2 GB时会崩溃。

如果您在创build2 GB文件时遇到问题,即使您拥有支持该文件的文件系统,并且/或者您知道内核支持该文件,这也适合您。

对Linux的大文件支持(> 2GB)需要在三个不同的位置进行处理,以确保您不会遇到2 GB的最大文件大小限制:

  1. 在内核中启用大文件支持

  2. 一个支持大文件大小的文件系统(许多基于Linux的文件系统都可以(ext3,reiserfs> = 3.6等))

  3. 在使用的库或应用程序中支持大文件

自2.4.0-test7以来,内核对大文件的支持就已经存在; 如果您使用自定义内核,请确保您已包含大型文件选项。

大多数Linux文件系统支持大文件,但使用networking文件系统可能会遇到问题。

最后,库(即libpcap)和应用程序需要使用gcc选项-D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS = 64进行编译。 检查以确保您使用的软件包是预编译这些选项还是自行打包。

在这里看到更多的细节。

看起来像这是一个libpcap的问题 …正如第一个答案中所述。

重新编译libpcap,或find另一个版本。