2010-06-23 3 views
2
struct inode_operations ext3_dir_inode_operations = { 
     .create   = ext3_create, 
     .lookup   = ext3_lookup, 
} 

Cette structure est affectée à la structure inode et à la structure d'opération du système de fichiers. Ma question est quel est ce drapeau .create? Faisons-nous la tâche dans la structure même? Ou est-ce une autre version de C (C99, C89?) Qui permet ce genre d'opération?Ext3 compréhension du code

J'espère que ma question est claire.

Répondre

7

C'est un initialiseur désigné par C99. Il est équivalent à, en C89:

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

create et lookup est l'élément de struct inode_operations. .create=ext3_create signifie ext3_dir_inode_operations.create=ext3_create et ainsi de suite pour les autres éléments de la structure. Je ne suis pas sûr de quelle norme cela est né.

Questions connexes