Saya ingin berbagi pengetahuan yang saya ambil ketika saya mengalami masalah menggunakan libpcap dan mendengus untuk mengendus tautan jaringan berkapasitas tinggi (dupleks penuh 1 GB; agregat maksimum 2 GB). Aplikasi akan mengendus semua lalu lintas dengan sukses, tetapi akan macet ketika ukuran file mencapai 2 GB ditangkap.
Jika Anda mengalami masalah dalam membuat file 2 GB, meskipun Anda memiliki sistem file yang mendukungnya, dan / atau Anda tahu kernel mendukungnya, ini untuk Anda.
Jawaban:
Dukungan file besar (> 2GB) untuk Linux perlu ditangani di tiga lokasi terpisah untuk memastikan Anda tidak mengalami batas ukuran file maks 2 GB:
Dukungan file besar diaktifkan di kernel
Sebuah sistem file yang mendukung ukuran file besar (banyak sistem file berbasis Linux melakukannya (ext3, reiserfs> = 3.6, dll))
Dukungan file besar dalam perpustakaan atau aplikasi yang digunakan
Dukungan kernel untuk file besar telah ada sejak 2.4.0-test7; jika Anda menggunakan kernel khusus, pastikan Anda menyertakan opsi file besar.
Sebagian besar sistem file Linux mendukung file besar, tetapi Anda mungkin memiliki masalah menggunakan sistem file jaringan.
Terakhir, perpustakaan (yaitu libpcap) dan aplikasi harus dikompilasi dengan opsi gcc -D _LARGEFILE64_SOURCE -D _FILE_OFFSET_BITS = 64. Periksa untuk memastikan paket yang Anda gunakan datang dengan dikompilasi dengan opsi-opsi ini atau roll sendiri.
Lihat di sini untuk detail lebih lanjut.
sumber
_FILE_OFFSET_BITS
lolosO_LARGEFILE
keopen
syscall pada lengkungan yang benar, tetapi_FILE_OFFSET_BITS
lebih disukai untuk portabilitas: stackoverflow.com/questions/2888425/…Sepertinya ini adalah masalah dengan libpcap ... Seperti yang dinyatakan dalam jawaban pertama.
Kompilasi ulang libpcap, atau temukan versi lain.
sumber