我的服務器上安裝了紅帽企業Linux服務器版本6.6(2.6.32-504.el6.x86_64),並具有低於分區的層次結構。statvfs系統調用失敗,錯誤值對於定義的數據類型太大
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 7.9G 1.7G 5.9G 22%/
tmpfs 5.4G 8.0K 5.4G 1% /dev/shm
/dev/sda8 53G 1.4G 49G 3% /mysql/data
/dev/sda6 7.9G 4.5G 3.1G 60% /usr/BWhttpd
/dev/sda4 32G 989M 29G 4% /var
/dev/sdb1 25T 37M 25T 1% /media1
/dev/sdc1 25T 37M 25T 1% /media2
/dev/sdd1 25T 37M 25T 1% /media3
/dev/sde1 22T 21T 1.1T 95% /media4
我發出的每個
/mediax
分區,但系統調用的statvfs
調用失敗,錯誤Value too large for defined data type
。
我能夠找到系統調用返回的錯誤EOVERFLOW
,但不知道struct statvfs
的哪個成員導致了這一點。
是否必須對/ mediax分區的大小做任何事情。
注意:分區是xfs文件系統類型。
您發佈的輸出看起來來自'df',[它在內部使用'statvfs()'](https://www.gnu.org/software/coreutils/coreutils.html),所以它似乎'statvfs()'適用於你的系統。你如何編譯你的代碼?你編譯爲32位還是64位? –
@AndrewHenle是輸出是'df'命令的輸出。我不確定32/64位編譯是否會在這裏產生影響。可以詳細說明這一點。 –
@AndrewHenle我也嘗試在http://lingrok.org/xref/coreutils/src/df.c這裏檢查'df'的源代碼,但無法找到對'statvfs'的引用我猜它直接使用內核調用'stat'。 –