fallocate

    4熱度

    1回答

    考慮我有以下一段代碼: #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <fcntl.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h> #inc

    1熱度

    1回答

    我正在查看fallocate的手冊頁,我不明白這兩者之間的區別。一個似乎分配塊但沒有寫入它們,其他似乎在不重寫塊的情況下釋放塊。無論哪種方式,效果似乎都與用戶的角度不可區分。請解釋這個我。 歸零文件空間 在偏移指定FALLOC_FL_ZERO_RANGE標誌(因爲Linux 3.15可用) 在字節範圍起動模式的零空間和 繼續len字節。在指定的範圍內,塊預分配 以覆蓋文件中的孔。在 成功調用後,從

    5熱度

    1回答

    我需要分配大文件而不調零其內容。我正在製作具有巨大文件大小(數百GB)的步驟fopen => ftruncate => fclose => mmap => (...work...) => munmap。當系統嘗試調零文件字節時,應用程序掛起幾分鐘 - 恕我直言,因爲使用了ftruncate。 ftruncate(ofd, 0); #ifdef HAVE_FALLOCATE int

    0熱度

    2回答

    我有一條像dd if=/dev/zero of=myImg.img bs=1KB count=1024k,我必須在我的腳本中多次執行。因此,我想將此行集成到我的Perl腳本中,而不是通過調用system('...');,而是通過創建函數。有沒有一個好的方法來做到這一點? 我試了MakeMaker,但我沒有找到一個正確的方法來設置我的文件長度/偏移量正確的方式,或類似的-o -l從fallocate

    0熱度

    1回答

    最近,我正在測試ext4文件系統的正確用法。我的專家是什麼: 當系統崩潰的時候,數據已經寫回來了ok不能丟失,但是可以修改。 這裏是我的用法: 1.調用fallocate來分配中心空間 fallocate(fd,0,0,4 * 1024 * 1024); // 4MB 2.調用fsync(fd)讓數據和元數據寫入磁盤 3.然後我調用函數隨機寫入4k大小的文件(隨機數據但不是0)。用O_DRICT標