Применение File Stat (структура типа stat) во всех операционных системах - PullRequest
0 голосов
/ 15 декабря 2011

Я хочу знать, как применить file stat(struct stat) во всех ОС.

Например, у меня есть статистика файла в ОС Windows в виде struct stat. Я скопировал этот файл в ОС Linux. Но теперь мне нужно применить file stat к ОС Linux. Есть ли способ использовать это для всех ОС? Нужно ли преобразовывать статистику Windows в какой-либо другой формат перед его применением в ОС Linux?

File Stat в том смысле, что я имею в виду время последнего изменения, время создания файла и время доступа и т. Д.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Вы хотите сказать, что вы хотите, чтобы файлы в обеих системах имели одинаковую метку времени создания, измененную метку времени и т. Д.?

Некоторые метаданные , такие как метки времени, могут быть установлены почтивсе операционные системы.Другое поле не может быть перенесено или требует специальной обработки.К ним относятся такие вещи, как права на файл (чтение-запись-выполнение) и пользователя / группы.

Чтобы изменить метки времени в системе Linux, см. Команду touch, если выхотите сделать это через командную строку и функцию utime, если вы хотите сделать это в своей собственной программе.

Редактировать: После очисткиВ дополнение к вашему комментарию вы должны знать, что структура stat в Windows и Linux не одинакова!В структуре Linux stat есть больше полей, и порядок, вероятно, тоже не тот.Если вы хотите перенести эти данные между системами, лучше всего создать собственную структуру, содержащую именно те данные, которые вам нужны, и иметь функции для каждой операционной системы, которые переводят из / в собственную структуру stat.

0 голосов
/ 15 декабря 2011

Ваш вопрос неясен.stat - это вызов POSIX, который принимает struct stat * и заполняет его. Вы не можете скопировать заполненную структуру в другую систему POSIX и ожидать, что формат будет таким же, но вы, безусловно, можете вызвать stat для копиифайла в другой системе POSIX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...