Если вы используете системный вызов напрямую, вам нужно убедиться, что ваше определение struct stat
и определение ядра согласуются. Кроме того, если вы работаете на 32-битной машине, вам, вероятно, никогда не следует использовать устаревший системный вызов lstat
, а вместо него lstat64
, поскольку первый не будет работать с большими файлами. Эти и многие другие проблемы являются причиной того, почему плохая идея делать системные вызовы самостоятельно вместо использования стандартной библиотеки; последняя оборачивает все устаревшие совместимости и дает вам совместимый со стандартами интерфейс POSIX.