Описание функций Си


         

Fnsplit



     fnsplit

Функция Разделяет полное имя файла на компоненты.

Синтаксис #include

int fnsplit(char * path, char * drive, char * dir, char * name, char * ext);

Файл, содержащий dir.h прототип

Описание Функция fnsplit берет в качестве входного аргу- мента полное имя файла (то есть маршрут доступа path) в форме :

X:\DIR\SUBDIR\NAME.EXT

и делит его на 4 части, которые запоминает в сим- вольных строках, адресными указателями которых являются: drive, dir, name, ext. (Каждый из ком- понентов может получить значение NULL, что озна- чает, что данный компонент был выделен, но не сохранен).

Максимальный размер для данных символьных строк задается константами MAXDRIVE, MAXDIR, MAXPATH, MAXNAME, MAXEXT (определяемыми в файле dir.h), причем каждая длина включает в себя место для по- зиции нулевого байта.

Константа Максимальная Строка длина ---------------------------------------------------------------------- MAXPATH (80) path; MAXDRIVE (3) drive; включая двоеточие (:); MAXDIR (66) dir; включая лидирующий и хвостовой знак (\); MAXFILE (9) name; MAXEXT (5) ext; включая ведущую точку(.) ----------------------------------------------------------------------

Функция fnsplit подразумевает, что для хранения каждого компонента достаточно места ( если компо- нент имеет значение, отличное от NULL).

При расщеплении полного имени файла (маршрута доступа) на части функция fnsplit воспринимает символы пунктуации следующим образом:

- компонент drive сохраняет двоеточие, присоеди- ненное к спецификации дисковода (C:, A: и т.д);

-компонент dir сохраняет ведущие и хвостовые зна- ки \ (\tc\include\, \source\, и т.д);

-компонент name включает имя файла;

- компонент ext сохраняет точку, предшествующую расширению имени файла (.c, .exe, и т.д.).

Две вышеописанные функции взаимообратны. Если вы с помощью функции fnsplit разделите на части мар- шрут доступа path, а затем сольете полученные компоненты с помощью функции fnmerge, то вы снова получите маршрут доступа path.



Содержание  Назад  Вперед