PDA

Visualizza la versione completa : [c] Mostrare lista drives su Linux Ubuntu


Pensiero
27-10-2010, 20:59
Scusate qualcuno sa dirmi, come posso fare in c, ad ottenere una lista dei drives(cd roms, perifiche usb, ecc...), per poi eventualmente accedere ad uno dei drive elencati.
Uso Ubuntu 10.04.

simo_85
27-10-2010, 21:12
Una maniera facile facile è stampare il contenuto della cartella /proc/modules (per iniziare) il cuale elenca il contenuto dei moduli in uso.. Per questo ti servirà un minimo di conoscenza di programmazione di sistema in Linux..
Scrivere un programma che viene eseguito in kernel space sarebbe un pò più laborioso..

Uso Ubuntu 10.04.
Non cambia niente da versione a versione, sempre che non siano stati effettuati dei cambiamenti alla kernel API da versione a versione, il che è possibile, e questo potrebbe fare la differenza se il tuo programma verrebbe eseguito in kernel space..

per poi eventualmente accedere ad uno dei drive elencati.
Cosa vuoi fare esattamente?

MItaly
27-10-2010, 21:24
Se si parla di drive, io guarderei i file system montati in /proc/mounts.

simo_85
27-10-2010, 21:55
Originariamente inviato da MItaly
Se si parla di drive, io guarderei i file system montati in /proc/mounts.

http://www.digibarn.com/collections/screenshots/Screenshots%20Funstuff/OhShit.jpg

Mi sono confuso con drivers... :mame: :mame: :mame:

Pensiero
28-10-2010, 00:22
Originariamente inviato da MItaly
Se si parla di drive, io guarderei i file system montati in /proc/mounts.

In /proc/mounts leggo questo:



rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=1026460k,nr_inodes=216348,mode=75 5 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode= 000 0 0
/dev/disk/by-uuid/10777e0c-bb20-483e-b44a-a796774c6441 / ext4 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
none /var/run tmpfs rw,nosuid,relatime,mode=755 0 0
none /var/lock tmpfs rw,nosuid,nodev,noexec,relatime 0 0
none /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
gvfs-fuse-daemon /home/salvatore/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=1000,group_id=100 0 0 0
/dev/sr0 /media/Disk iso9660 ro,nosuid,nodev,relatime,uid=1000,gid=1000,iochars et=utf8,mode=0400,dmode=0500 0 0


Posso fare in modo che il mio programma legga questo file, ma poi come interpretarlo (scusate la mia ignoranza)? Devo creare una GtkComboBox che mi mostri i vari dispositivi, come faccio a capire se c'è una pendrive o un cdrom?

simo_85
28-10-2010, 01:36
Originariamente inviato da Pensiero
/dev/sr0
/dev/sr0 è il tuo cd-dvd drive. Le periferiche usb normalmente sono /dev/sdbN dove N è un numero di indicizzazione.

Loading