Что такое альтернатива lstat () в windows?
в linux, когда stat()
используется со сломанными файлами ссылок, он терпит неудачу с -1
. Поэтому я использовал lstat()
которой удалось.
для того же случая в windows, _stat()
не со сломанными ярлыками, но нет _lstat()
в windows. Пожалуйста, помогите найти альтернативу lstat()
в windows.
3 ответов
GetFileAttributes или Getfileattributesexдля вероятно (если я понял stat
и lstat
справа). Цитата из документов:
поведение символьной ссылки - если путь указывает на символическую ссылку, функция возвращает атрибуты для символической ссылки.
принятый ответ не дает полного stat
эквивалентны. The stat
struct определяется как
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for filesystem I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
но GetFileAttributes..
не предоставляет никакой информации о владельце (возвращает данные в объекте WIN32_FIND_DATA). Если вам нужна информация о владельце, похоже, вы можете использовать GetSecurityInfo
[1].
[1] https://msdn.microsoft.com/en-us/library/windows/desktop/aa446629%28v=vs.85%29.aspx
hey _stat () или stat () отлично работает и на сломанных ярлыках. Вот почему в windows нет альтернативы lstat(UNIX).
где в Unix stat () терпит неудачу со сломанными ссылками, поэтому lstat предоставляется для устранения проблемы.
спасибо всем за помощь.