LinuxForum.Fans
Тема

Имена файлов

Автор: stranger 7 сообщений 548 просмотров
18.06.2014 02:23 #384137
drBatty написал:
[quote="stranger"]
создайте четыре файла, в которые помещайте имена файлов

Тяжкий бред.на самом деле -- устами младенца глаголит истинна. Действительно: каталоги это файлы в которых имена других файлов.
[/quote]

Сыночко, может всё же не "имена"??? *ROFL*

18.06.2014 02:46 #384144

"stranger" написал:
Сыночко, может всё же не "имена"???
детка, именно ИМЕНА ФАЙЛОВ хранятся в специальных файлах, которые называются "каталоги".

Если ты мне не веришь, попробуй создать пару каталогов, в одном из которых Over9000 имён в 10 байт, а в другом Over9000 имён в 100 байт. И сравни их вес. Увидишь сам, что первый примерно в 10 раз легче второго.
18.06.2014 03:09 #384152

drBatty, малютка, дай пожалуйста корректное определение слову "файл", "имя" и "имя файла"

18.06.2014 03:23 #384155
"stranger" написал:
дай пожалуйста корректное определение слову "файл", "имя" и "имя файла"
  • файл -- хранилище информации.
  • имя файла -- символьная строка длинной 0..255 байт, оканчивающаяся символом \0, и не содержащая символов "/" и "\0". Обычно имя файла используется для доступа к какому-то конкретному файлу, как указатель на этот файл(чем собственно и является). У файла может быть любое число имён, в т.ч. и не быть вовсе. Имена фалов хранятся в специальных файлах, которые называются "каталоги".
18.06.2014 03:27 · отредактировано #384156

drBatty, садитесь, два. Хотите ещё с десяток верных ответов? И да, чего ж ещё один пункт пропустили? А он ой как важен!

17.09.2014 02:50 #392868

Мужики не ну что вы прямо как 2 бабуськи на лавочке с семечками :D
Мне вот реально стало интересно так как все таки правильно ?

17.09.2014 04:02 #392871
"lone_wolf" написал:
как все таки правильно ?

1. файлы (в GNU/Linux) это очень общее понятие, здесь всё — файлы. Т.е. определение дать сложно, это как "время", или "пространство". Ну в общем, файл это сущность, в которой может хранится информация. Важно отличать файлы от сред передач. Например интернет это не файл. И сетевой интерфейс (e.g eth0) тоже не файл. Хотя например клавиатура — это файл. В некотором смысле конечно.

2. Каталог — специальный файл используемый для хранения имён файлов. В первом приближении каталог можно представить как таблицу из множества строк и двух столбцов. В первом столбце лежит имя файла, во втором его номер (inode. Это действительно номер, целое число без знака). Конечно в реализации, кроме самих строк есть и индекс, позволяющий быстро искать имена в каталоге. Также в каталогах может быть и другая информация.

Для GNU/Linux можно почитать man pages, например readdir(3)

DESCRIPTION
The readdir() function returns a pointer to a dirent structure representing the next directory
entry in the directory stream pointed to by dirp. It returns NULL on reaching the end of the
directory stream or if an error occurred.

On Linux, the dirent structure is defined as follows:
text
           struct dirent {
               ino_t          d_ino;       /* inode number */
               off_t          d_off;       /* not an offset; see NOTES */
               unsigned short d_reclen;    /* length of this record */
               unsigned char  d_type;      /* type of file; not supported
                                              by all filesystem types */
               char           d_name[256]; /* filename */
           };

The only fields in the dirent structure that are mandated by POSIX.1 are: d_name[], of unspec‐
ified size, with at most NAME_MAX characters preceding the terminating null byte ('\0'); and
(as an XSI extension) d_ino. The other fields are unstandardized, and not present on all sys‐
tems; see NOTES below for some further details.

как видите, предусмотрен также и тип файла. Хотя в примечании сказано, что не везде он поддерживается.

Войдите или зарегистрируйтесь, чтобы ответить.