#include #include #include #include static const char* const subsystems[] = { "block", 0 }; int main(int argc, char **argv) { GFile *root = g_file_new_for_path("idnum.c"); GFileInfo *info = g_file_query_info(root, G_FILE_ATTRIBUTE_UNIX_DEVICE, G_FILE_QUERY_INFO_NONE, 0, 0); GUdevClient *client = g_udev_client_new(subsystems); GUdevDevice *dev; int devicenum; if(!info) { printf("Could not get info.\n"); return 1; } devicenum = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_UNIX_DEVICE); printf("Device id is %d.\n", devicenum); dev = g_udev_client_query_by_device_number(client, G_UDEV_DEVICE_TYPE_BLOCK, devicenum); if(!dev) { printf("Could not get device from num.\n"); return 1; } return 0; }