08962397b517991a2d383470b739a2bbbe88fa60
[learn-rust.git] / call-c-from-rust / c-mounts.c
1 #include <stdio.h>
2 #include <err.h>
3 #include <string.h>
4 #include <libmount.h>
5
6 int
7 main()
8 {
9     int r;
10     const char *version;
11
12     r = mnt_get_library_version(&version);
13     if (r < 0)
14         errx(1, "failed to get lib versino: %s", strerror (-r));
15     printf("libmount version: %s\n", version);
16
17     struct libmnt_table *table = mnt_new_table();
18     r = mnt_table_parse_mtab (table, NULL);
19     if (r < 0)
20         errx(1, "failed to parse mtab: %s", strerror (-r));
21
22     struct libmnt_fs *fs;
23     r = mnt_table_first_fs(table, &fs);
24     if (r < 0)
25         errx(1, "failed to find first fs: %s", strerror (-r));
26     printf("first fs type: %s source: %s target: %s\n", mnt_fs_get_fstype(fs), mnt_fs_get_source(fs), mnt_fs_get_target(fs));
27     mnt_free_fs(fs);
28
29     mnt_free_table(table);
30     return 0;
31 }