Файлы информации о файловых системах на основе Unix - PullRequest
0 голосов
/ 24 февраля 2012

Когда я создаю новый файл (например, touch file.txt), его размер равен 0B. Мне интересно, где хранится его информация (размер, дата последнего изменения, имя владельца, имя файла). Эта информация хранится на hd и управляется ядром, конечно, но я бы хотел узнать о них больше: Где и как я могу их получить, используя, например, язык программирования C, и как я могу их изменить. Являются ли эти данные изменяемыми, просто используя язык программирования, или, возможно, ядро ​​избегает этих операций?

Я работаю над файловыми системами на основе Unix и спрашиваю информацию, особенно об этом fs.

Ответы [ 3 ]

3 голосов
/ 24 февраля 2012

В системе Unix они традиционно хранятся в части метаданных представления файла, называемого inode

. Вы можете получить эту информацию с помощью stat () * 1006.* вызов, см. эти поля, вы можете изменить владельца и разрешения с помощью chown () и chmod ()

2 голосов
/ 24 февраля 2012

Эту информацию можно получить с помощью функции stat() (и других в ее семействе).Где он хранится, зависит от конкретной файловой системы и по понятным причинам, вы не можете изменить их, если у вас нет прямого доступа к диску - и этого следует избегать, если вы не потеряете все на этом диске.1002 *

0 голосов
/ 24 февраля 2012

Метаданные, такие как владелец, размер и даты, обычно хранятся в структуре под названием index-node (inode), которая находится в суперблоке файловой системы.

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