Внимательно изучите и наберите в редакторе исходный текст предлагаемой программы:
$ vim union.c
Cкомпилируйте и запустите программу:
$ gcc union.c -o union
$ ./union
Проанализируйте вывод программы.
Внимательно изучите и наберите в редакторе текст программы:
$ vim struct.c
Скомпилируйте и запустите приложение:
$ gcc struct.c -o struct
$ ./struct
Выведите на экран текстовый файл, созданный программой:
$ cat base.dat
Как вы думаете, какими недостатками обладает написанная программа? Как их устранить?
Для адресации устройств в компьютерных сетях на сетевом уровне используют IP-адреса. Согласно протоколу IPv4 (Internet Protocol version 4) IP-адрес представляет собой четыре байта, которые обычно пишут в виде десятичных чисел, разделённых точками. Логический 32-битный IP-адрес состоит из двух частей: первая идентифицирует сеть, а вторая - устройство в сети. Для идентификации сети используются первые n (n <= 32) битов IP-адреса, остальные адресуют устройство. Количество битов, задающих адрес сети определяется сетевой маской. Как и IP-адрес, маска состоит из 32 бит. Маска сравнивается с IP-адресом побитно, слева направо. В маске подсети единицы соответствуют сетевой части, а нули - адресу узла.
Напишем программу, вычисляющую адрес подсети компьютера, по его известным IP-адресу и сетевой маске:
$ vim netaddr.c
Скомпилируйте и запустите приложение:
$ gcc netaddr.c -o netaddr
$ ./netaddr
$ vim line.c