createlabel - creates a disk label structure for a disk
#include <sys/types.h> #include <sys/disklabel.h>
struct disklabel *disk,
int boot_len );
Standard C Library (libc.a)
Specifies the device special file name of the device.
Specifies the name entry in the /etc/disktab file that is
to be used for the label information. Otherwise, specify
NULL to indicate either that the name entry is not in the
/etc/disktab file or that it should be ignored even if it
is in the /etc/disktab file. Points to the disk label
structure that is filled in with the returned disk
description on successful completion of the function.
Points to the buffer that the function may use to contain
the (optional) primary and secondary bootstrap names for
the disk label. Specifies the length of the boot buffer.
The value must be set to the value of the BUFSIZ constant.
The createlabel() function fills in the disk label structure
pointed to by the disk parameter. The resulting disk
label can then be written to the disk in order to label
The function queries the device, using the devname parameter,
to obtain the disk's geometry, capacity, and any
default partition information.
The function checks the name parameter. If name is nonnull,
the function looks for an entry in the /etc/disktab
file that matches the name string and initializes the disk
label structure from that entry. The function then overrides
the device data and initializes the disk label
structure from the entry in the /etc/disktab file.
If the name string is NULL or has no matching entry in the
/etc/disktab file, the function queries the device (using
the devname parameter) to obtain the device's name string.
The function then looks for an entry in the /etc/disktab
file that matches that name string, and if it finds a
match, it initializes the disk label structure from that
If an /etc/disktab entry indicates that the device has a
dynamic geometry, the function queries the device (using
the devname parameter) to obtain the disk's true geometry
and capacity and to override any value given in an
/etc/disktab entry associated with the device. In this
case, any -1 lengths encountered in the partition
specifications for the entry are replaced by a value equal
to the device's total capacity minus the starting offset
of the partition.
Upon successful completion of the createlabel() function,
a value of 0 is returned and the contents of the disk
label structure are updated.
Upon error, a value of -1 is returned and errno is set to
Either disk or boot is NULL, or boot_len is not equal to
Table of disk partition sizes for supported disks.
Files: disklabel(4), disktab(4)
[ Back ]