URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 976
[ Назад ]

Исходное сообщение
"Что означает '%.*s' на С"

Отправлено Danger_Dancer , 13-Сен-02 17:40 
разбираюсь в исходниках одной большой проги, не могу понять. Есть такая строка
SELECT usesuper FROM pg_user WHERE usename = '%.*s'
//проверка юзера на супер права
что могут обозначать эти символы?

Содержание

Сообщения в этом обсуждении
"RE: Что означает '%.*s' на С"
Отправлено Sasha_KA , 13-Сен-02 18:45 
>разбираюсь в исходниках одной большой проги, не могу понять. Есть такая строка
>
>SELECT usesuper FROM pg_user WHERE usename = '%.*s'
>//проверка юзера на супер права
>что могут обозначать эти символы?

Любой пользователь имя которого кончается на .*s


"RE: Что означает '%.*s' на С"
Отправлено sas , 13-Сен-02 19:17 
Hi,

Actually it should not work like expected if it is just SQL statement (i mean "SELECT usesuper FROM pg_user WHERE usename = '%.*s'") In order to work from SQL point of view it should be:

SELECT usesuper FROM pg_user WHERE usename LIKE '%.*s'

In that case meaning is: get all usesuper where usename is ending with ".*s". Without "LIKE" it will get just all usesuper where usename = '%.*s' (exact string).

But if it is format string of the "printf family" of the functions (printf; sprintf etc.) meaning is different: "*" can be used to specify number of chars in the result string. For example

printf("%*d", width, num);

Thanks and hope it helps
--- sas