LINUX.ORG.RU

немогу понять как работает fnmatch


0

1

снова драсте.

fnmatch(): http://linux.die.net/man/3/fnmatch

при таком вызове функция возвращает 0: fnmatch(«/mydir/*», «/mydir/foo.txt», FNM_FILE_NAME)

а при таком, 1: fnmatch(«/mydir/*», «/mydir/../usr/bin/../../mydir/foo.txt», FNM_FILE_NAME)

перепробовал множество вариантов, но что-то никак немогу понять, как эта функция должна работать. подскажите, где ступил?

благодарен.

★★★

Так правильно же. 0 при успехе. А * - это же что попало.

cdshines ★★★★★
()

что именно тебе не ясно?

функция возвращает ноль если паттерн нашелся.

во втором случае не находит т.к. указан флаг FNM_FILE_NAME (он же FNM_PATHNAME), который означает что «*» _не матчит_ «/».

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

функция возвращает ноль если паттерн нашелся.

это понятно.

флаг FNM_FILE_NAME (он же FNM_PATHNAME), который означает что «*» _не матчит_ «/».

а какой флаг нужен для моего случая?

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

для моего случая

т.е. для того, чтоб я мог определить, что второй аргумент указывает на подпуть/подкаталог находящийся в 'pattern'

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

методом тыка выяснил, что вместо флагов нужно установить '0'. (странно, что об этом в доке не говорится)

niXman ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.