Mountpoint C
Teda napr. mam:
/dev/sda1 --> /
/dev/sda2 --> /home
/dev/sda3 --> /boot
/dev/sda4 --> /home/daco/daco
A teda zo suboru /bin/ls chcem zistit na akom mountpointe je a na akom zariadeni (konkretne /dev/sda1 a /)
To iste pre nejaky iny subor /home/daco/daco/daco mi ma vratit /dev/sda4
Ako sa da nieco take napisat (co najefektivenejsie) v C-cku?
Pre pridávanie komentárov sa musíte prihlásiť.
int stat(const char *path, struct stat *buf);
dev_t st_dev; /* ID of device containing file */
dev_t st_rdev; /* device ID (if special file) */
Co je pripojene zisitis napr. z /proc/mounts, treba najst devfile ktoreho st_rdev == st_dev hladaneho suboru.
stat subor/adresar, ulozit si st_dev. Ist v adresarovej strukture vyssie. Stat na aktualny adresar, porovnat st_dev. Toto robit az dovtedy kym nebudem v / alebo kym sa st_dev nezmeni.
je to rozumny napad, ci pomaly?
Ukazkovy kod je tu: http://pastebin.com/sktpvctP