我正在查看一個非常古老的基于 C 的專案。它-D_LARGEFILE_SOURCE在構建時添加了定義。
現代 Linux 上是否仍需要該前處理器宏(如果需要,為什么)?
uj5u.com熱心網友回復:
我檢查了標題。如果你是為 64 位編譯,_LARGEFILE_SOURCE每次都會為你定義。這僅適用于 32 位。是的,這就是開關,如果您使用現代 32 位 Linux,您仍然需要它來訪問大于 2GB 的檔案。
宏定義改變檔案大小引數的從32到64位的大小lseek()和fseek(),改變了系統呼叫號碼lseek()到呼叫llseek(),以及檔案大小構件的尺寸struct stat為64位。(系統呼叫更改發生在其他地方,*stat除非您仍然針對 libc5 構建。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406073.html
標籤:
