Вывод значений полей структуры
18-42 Мы выводим значения всех полей структуры data.
Освобождение выделенной под XDR памяти
43 Для освобождения памяти мы вызываем функцию xdr_free (см. упражнение 16.10).
Запустим программу write на компьютере Sparc, перенаправив стандартный вывод в файл с именем data:
solaris % write > data
solaris % ls -l data
-rw-rw-r-- 1 rstevens other1 76 Apr 23 12:32 data
Мы видим, что размер файла равен 72 байтам что соответствует рис. 16.4, на котором изображена схема хранения данных.
Прочитав этот файл в BSD/OS или Digital Unix, мы получим те результаты, на которые и рассчитывали:
bsdi % read < data
read 76 bytes
short_arg = 1, long_arg = 2, vstring_arg = 'hello, world'
fopaque[] =99, 88, 77
vopaque<> = 33 44
fshort_arg[] = 9999, 8888, 7777, 6666
vlong<> = 123456 234567 345678
uarg (int) = 123
alpha % read < data
read 76 bytes
short_arg = 1, long_arg = 2, vstring_arg = 'hello, world'
fopaque[] = 99, 88, 77
vopaque<> = 33 44
fshort_arg[] = 9999, 8888, 7777, 6666
vlong<> = 123456 234567 345678
uarg (int) = 123
Рис. 16.4. Формат потока XDR, записанный в листинге 16.13