����� ������������ OpenNet.ru / ������ "������������ ��� Linux" / ������

15.4.1. ��������� ��

� ������� �������� ���� ���������� �� ����� �������� ���������� �� ������������� ������� � �� RPM � ������� ���������. ��� �������� ��������� ���������� rpmtsInitIterator:

rpmdbMatchIterator rpmtsInitIterator(const rpmts ts,

rpmTag rpmtag,

const void *keypointer,

size_t keylen);

� ������ ������� ������, ����� ��� (����� ����, �������� ��� ������) �� ����� ����������. ��� �������, ��� ��� ������, RPMTAG_NAME. ������ � ��������������� ���� �� ������ �������� ��� ������. keypointer ���������� � ����������� �� ����, ����� ��� �������.

��� ��������� ������ ����� �������� 0 � ��������� keylen. ��������, ���� ���������� �����������, � ������� rpmtsInitIterator ���� ��� ������, ������������ sendmail:

rpmdbMatchIterator iter;

iter = rpmtsInitIterator(ts, RPMTAG_NAME, "sendmail", 0);

rpmdbMatchIterator ��������� �������� ��������� �������, � ������ ������ ��������� ������, � ������ ������� ������� �������� ������. ����� ������ rpmtsInitIterator ��������� ����� ����� ����� rpmdbNextIterator:

Header rpmdbNextIterator(rpmdbMatchIterator iter);

��� ������� ���������� ��������� � ��������� ������ ������. ���� � ��������� ������ ��� �������, ���������� ��������, �������� NULL.

���� Header - �� NULL, �� ������� ����� �������� ������, ��� ���� �������� � ���������� ������. ����������� ���� ��� ������ ���� �������, ���������� �������:

while ( (installed_header = rpmdbNextIterator(iter) ) != NULL) {

/* Do something... */

}

��� ����� ����������� ������ ����� �������������, ��� ��� ������ ��������� ����� rpmdbNextIterator ����������� Header.

����������� ������ ��������� �������� ���������� ��� ���� �����. ��� ���������� ������� � �������� ������������ rpmdbSetIteratorRE:

int rpmdbSetIteratorRE(rpmdbMatchIterator iter,

rpmTag tag,

rpmMireMode mode,

const char * pattern);

����� rpmdbSetIteratorRE �������� ���������� �������� ����� �������, ����� ������������� �������������� ������. �������� mode ������� ��� �������. �� ����� ���� ����� ��:

���

��������

RPMMIRE_DEFAULT

�� ��, ��� � ���������� ���������, � ����������� \., .*, � ^..$

RPMMIRE_GLOB

������ � ����� glob � �������������� fnmatch

RPMMIRE_REGEX

���������� ��������� � �������������� regcomp

RPMMIRE_STRCMP

��������� ����� � �������������� strcmp

��� ��������� �������������� ���������� �� ������ ����� �������� �������������� man-��� ��� fnmatch(3), glob(7), regcomp(3), regex(7), � strcmp(3).

����� ������������� �������� ������ ���� ����������:

rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator iter);

����� rpmdbFreeIterator ���������� NULL.

����� - ��� �����������
����� - ���������������� � �� RPM
����������


����� ������������ �� OpenNet.ru