¿Cómo enumerar los dispositivos de almacenamiento masivo USB mediante programación usando libudev en Linux?

Estoy haciendo un proyecto con dispositivos de almacenamiento masivo en Linux. Estoy tratando de escribir una aplicación que enumere todos los dispositivos de almacenamiento masivo USB conectados y notifique cuando se conecte un nuevo dispositivo de almacenamiento masivo. Estoy usando libudev para este propósito. He usado el código encontrado en "http://www.signal11.us/oss/udev/". He hecho la modificación aquí

  /* Create a list of the devices in the 'block' subsystem. */
  enumerate = udev_enumerate_new(udev);
  udev_enumerate_add_match_subsystem(enumerate, "block");
  udev_enumerate_scan_devices(enumerate);
  devices = udev_enumerate_get_list_entry(enumerate);

El problema ahora es que enumera todos los dispositivos de bloque. Solo quiero los dispositivos de almacenamiento masivo usb. Cómo obtener esta lista Un problema más es quecómo obtener la etiqueta de los dispositivos de almacenamiento usb usando libudev.

Respuestas a la pregunta(1)

Su respuesta a la pregunta