dwww Home | Manual pages | Find package

FAT_IOCTL_GET_VOLUME_ID(2const)                 FAT_IOCTL_GET_VOLUME_ID(2const)

NAME
       FAT_IOCTL_GET_VOLUME_ID - read the volume ID in a FAT filesystem

LIBRARY
       Standard C library (libc, -lc)

SYNOPSIS
       #include <linux/msdos_fs.h>  /* Definition of FAT_* constants */
       #include <sys/ioctl.h>

       int ioctl(int fd, FAT_IOCTL_GET_VOLUME_ID, uint32_t *id);

DESCRIPTION
       FAT  filesystems  are  identified  by a volume ID.  The volume ID can be
       read with FAT_IOCTL_GET_VOLUME_ID.

       The fd argument can be a file descriptor for any file  or  directory  of
       the filesystem.  It is sufficient to create the file descriptor by call-
       ing open(2) with the O_RDONLY flag.

       The  id  argument is a pointer to the field that will be filled with the
       volume ID.  Typically the volume ID is displayed to the user as a  group
       of two 16-bit fields:

           printf("Volume ID %04x-%04x\n", id >> 16, id & 0xFFFF);

RETURN VALUE
       On  success,  0 is returned.  On error, -1 is returned, and errno is set
       to indicate the error.

STANDARDS
       Linux.

HISTORY
       Linux 3.11.

EXAMPLES
       The following program demonstrates the use of ioctl(2)  to  display  the
       volume ID of a FAT filesystem.

       The  following  output was recorded when applying the program for direc-
       tory /mnt/user:

           $ ./display_fat_volume_id /mnt/user
           Volume ID 6443-6241

   Program source (display_fat_volume_id.c)

       #include <fcntl.h>
       #include <linux/msdos_fs.h>
       #include <stdint.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <sys/ioctl.h>
       #include <unistd.h>

       int
       main(int argc, char *argv[])
       {
           int       fd;
           int       ret;
           uint32_t  id;

           if (argc != 2) {
               printf("Usage: %s FILENAME\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           fd = open(argv[1], O_RDONLY);
           if (fd == -1) {
               perror("open");
               exit(EXIT_FAILURE);
           }

           /*
            * Read volume ID.
            */
           ret = ioctl(fd, FAT_IOCTL_GET_VOLUME_ID, &id);
           if (ret == -1) {
               perror("ioctl");
               exit(EXIT_FAILURE);
           }

           /*
            * Format the output as two groups of 16 bits each.
            */
           printf("Volume ID %04x-%04x\n", id >> 16, id & 0xFFFF);

           close(fd);

           exit(EXIT_SUCCESS);
       }

SEE ALSO
       ioctl(2), ioctl_fat(2)

Linux man-pages 6.9.1              2024-06-15   FAT_IOCTL_GET_VOLUME_ID(2const)

Generated by dwww version 1.16 on Tue Dec 16 04:04:05 CET 2025.