понимание кода ext3


struct inode_operations ext3_dir_inode_operations = {
        .create         = ext3_create,
        .lookup         = ext3_lookup,
}

Эта структура присваивается структуре inode и далее структуре работы файловой системы. Мой вопрос в том, что это за флаг .create? Выполняем ли мы задание в самой структуре? Или это какая-то другая версия C (C99, C89?) что позволяет проводить такого рода операции?

Я надеюсь, что мой вопрос ясен.

3 2

3 ответа:

Это инициализатор, обозначенный C99. Это эквивалентно, в C89:

struct inode_operations ext3_dir_inode_operations = { 0 };
ext3_dir_inode_operations.create = ext3_create;
ext3_dir_inode_operations.lookup = ext3_lookup;

create и lookup является элементом struct inode_operations. .create=ext3_create означает ext3_dir_inode_operations.create=ext3_create и так далее для других элементов структуры. Не знаю, из какого стандарта это возникло.

Взгляните на struct inode_operations