|
��������
varargs - ��������� ������ ���������� ���������� �����
���������
#include <varargs.h> va_alist va_dcl void va_start (pvar) va_list pvar; ��� va_arg (pvar, ���) va_list pvar; void va_end (pvar) va_list pvar;
��������
������ ����� �������� ��������� ������ ��������� ������� � ���������� ����������� ����������. �������� � ���������� ������ ���������� [����� ��� printf(3S)], ��
������������ varargs, ������� �������������, ��� ��� ��
��������� ����������� ��������� ��������� ���������� �
�������� ����������.
Va_alist ������������ ��� �������� � ��������� �������, ������� �� ����� ���� ����� ��������� ���������� ����� ����������.
������ va_dcl ������������ � �������� va_alist. �� va_dcl �� ���� ������� ����� � �������.
Va_list ������ ����� ����������, ������������ ��� ��������� ������ ����������.
������ va_start ���������� ��� ������������� pvar ����� ���������� ������ ����������.
������ va_arg ������ ��������� �������� � ������, �� ������� ��������� pvar. ���������� ��������� ��������� ��� ���������, ��������� �� ����� ���������� ������ ���, ������ ������, ������.
������ va_end ������������ ��� ��������� ���������.
�������� ������������ �������� ������ ����������, ������ �������� ����������� �������� va_start � ����������� �������� va_end.
������
���� ���������� ��������� ���������� ���������� ������
execl(2).
#include <varargs.h> #define MAXARGS 100 /* execl ���������� ��������� �������: execl (file, arg1, arg2, ..., (char *)0); */ execl(va_alist) va_dcl { va_list ap; char *file; char *args [MAXARGS]; int argno=0; va_start(ap); file = va_arg(ap, char *); while ((args [argno++] = va_arg(ap, char *)) != (char *)0) ; va_end(ap); return execv(file, args); }
��. �����
exec(2), printf(3S), vprintf(3S).
����������
������ ����������� ����� ���������� ������� �� ���������� ������� - �������������� ������� (��������, ����������� �� ������� �����) �� ����������. ���, ��� ������ execl ��������� �������� ������ ���� ������� ����������; printf ���������� ���������� ���������� �� �������.
���� �� ������� �������� � �������� ������� ��������� ������� va_arg ���� char, short ��� float, ��� ��� �������� �������� ����� C ����� ������� ������� ��������� ����� char � short ���������� � ���� int, � ��������� ���� float - � ���� double.
|