creatediskbyname(3x) creatediskbyname(3x)
Name
creatediskbyname - get the disk description associated with a file name
Syntax
#include <disktab.h>
struct disktab *
creatediskbyname(name)
char *name;
Description
The subroutine takes the name of the character device special file representing a disk device (for example, and returns a structure pointer
describing its geometry information and the default disk partition tables. It obtains this information by polling the controlling disk
device driver. The subroutine returns information only for MSCP and SCSI disks.
The file has the following form:
#define DISKTAB "/etc/disktab"
struct disktab {
char *d_name; /* drive name */
char *d_type; /* drive type */
int d_secsize; /* sector size in bytes */
int d_ntracks; /* # tracks/cylinder */
int d_nsectors; /* # sectors/track */
int d_ncylinders; /* # cylinders */
int d_rpm; /* revolutions/minute */
struct partition {
int p_size; /* #sectors in partition */
short p_bsize; /* block size in bytes */
short p_fsize; /* frag size in bytes */
} d_partitions[8];
};
struct disktab *getdiskbyname();
struct disktab *creatediskbyname();
Diagnostics
Successful completion of the subroutine returns a pointer to a valid disktab structure. Failure of this subroutine returns a null pointer.
The subroutine fails if it cannot obtain the necessary information from the device driver or disktab file.
A check is done to ensure that the disktab file exists and is readable. This check ensures that the subroutine is not being called because
the disktab file was accidentally removed. If there is no disktab file, the subroutine fails.
The subroutine also fails if it cannot determine disk geometry attributes by polling the driver. This can occur if the disk is not an MSCP
or SCSI disk. In some cases where the disk consists of removable media and the media is not loaded, the driver will be unable to determine
disk attributes.
Restrictions
The subroutine returns information only for MSCP and SCSI disks.
See Also
getdiskbyname(3x), ra(4), rz(4), disktab(5)
creatediskbyname(3x)