В настоящее время я пишу библиотеку файловой системы и столкнулся с readdir64()
при кодировании * nix-части библиотеки. Документация для этой функции говорит, что она принимает dirent64*
и добавляет поддержку для больших файловых систем; означает ли это, что он работает только на системах x86-64?* nix - can readdir64 можно использовать в 32-битной системе?
0
A
ответ
1
Согласно старым обсуждениям linux с 32-битных компьютеров (http://lists.gnu.org/archive/html/bug-glibc/2001-03/msg00047.html), readdir64 МОЖЕТ использоваться в 32-разрядных системах.
Ульрих Дреппер (разработчик и сопровождающий персонал glibc) также говорит, что ДОЛЖЕН использовать readdir64. Сообщение с начала 2001 года: http://lists.gnu.org/archive/html/bug-glibc/2001-03/msg00048.html
Избегайте этого ... относитесь к нему как к чуме. Внесите 'readdir()' и сделайте его правильным. Не цитируйте меня на этом, но я думаю, что 'readdir64()' используется для 32-битных систем, которые должны работать с большими файлами и поэтому нуждаются в больших размерах, чем 32-битные целые числа. Если это правильно, нет необходимости в 'readdir64()' в 64-битных системах. –
Но в 'dirent.h' для систем с' __USE_FILE_OFFSET64' (64-разрядные системы) 'readdir()' определяется следующим образом: #define readdir readdir64'. Так что это по умолчанию в 64-битных системах. – CoffeeandCode
OK; как я уже сказал, не цитируйте меня. Это зависит от разных системных правил для обратной совместимости и т. Д. Это странно. –