abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:44 | IT novinky

    Akční adventura State of Mind je na portále GOG.com zdarma, akce trvá do 10. září.

    |🇵🇸 | Komentářů: 0
    včera 13:22 | IT novinky

    Na Kickstarteru běží kampaň na podporu malého robotický psa Petoi Quaddle. Postaven je na ESP32-S3. V několika variantách. S řadou senzorů. Programovat lze pomocí Pythonu, C++ nebo i vizuálních bloků. Zkoušet a trénovat lze v simulátoru.

    Ladislav Hagara | Komentářů: 1
    6.9. 22:11 | Pozvánky

    Dětem začala škola a nedobrovolně se tak musí vzdělávat. Avšak pro dospělé, kteří se chtějí vzdělávat nebo naopak se o vědomosti podělit, je tu Virtuální Bastlírna - jako každý měsíc si můžete online a zdarma nezávazně popovídat o vědě a technice nejen s bastlíři, ale i s vývojáři, vědci nebo profesory. A čemu se strahováci budou věnovat? Blíží se KiCAD 11 s nespočtem novinek, z nichž zde musí zmínit alespoň možnost kótování a závislostí z

    … více »
    bkralik | Komentářů: 1
    6.9. 19:33 | Komunita

    Asahi Linux, tj. Linux pro Apple Silicon, oficiálně podporuje čipy M3 (M3, M3 Pro a M3 Max).

    Ladislav Hagara | Komentářů: 5
    6.9. 15:44 | IT novinky Ladislav Hagara | Komentářů: 1
    6.9. 15:00 | IT novinky

    Server SiFive BigSky SF-2U870 2U je založený na jádře SiFive P870-D, zatím je naintegrovaných 32 jader 256 GB RAM 2 GHz, škálovat lze do 256 jader na čip. O něco podrobnější popis serveru v článku SiFive BigSky Ships the First RISC-V Server. Is the GPU Head Node the Prize? na futurumgroup.com. Asi ani tento čip nebude na úrovni nejlepších 64-bit ARMů a AMD Zenů, ale splňuje RVA23 specifikaci a je podporovaný Ubuntu 26.04 LTS a RHEL 10. V článku je

    … více »
    Pavel Píša | Komentářů: 1
    6.9. 00:11 | IT novinky

    Na YouTube lze zhlédnout nový celovečerní dokumentární film The Story of VS Code | Official Documentary věnovaný Visual Studio Code.

    Ladislav Hagara | Komentářů: 19
    4.9. 23:49 | Zajímavý článek

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 1
    4.9. 17:33 | Zajímavý článek

    Bylo vydáno nové číslo hackerského magazínu tmp.0ut: Volume 5.

    Ladislav Hagara | Komentářů: 1
    4.9. 01:44 | Nová verze

    Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (6%)
     (2%)
     (14%)
     (21%)
    Celkem 2610 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Jak najit cestu k cdrom device v C

    tomes.io avatar 10.2.2013 16:33 tomes.io | skóre: 12 | blog: tomesh
    Jak najit cestu k cdrom device v C
    Přečteno: 551×
    Ahoj,

    mam za ukol napsat jednoduchou verzi programu eject(1) tak, aby si byl program schopny zjistit cestu k zarizeni sam na jakemkoliv linuxu. Program nize umi otevrit cdromku jen kdyz se mu primo zada cesta na vstupu, jak to ale udelat automaticky? Jak v C vydolovat path k zarizeni?
    int main (int argc, char* argv[])
    {
      /* Open a file descriptor to the device specified on the command line.  */
      int fd = open (argv[1], O_RDONLY);
      /* Eject the CD-ROM.  */
      ioctl (fd, CDROMEJECT);
      /* Close the file descriptor.  */
      close (fd);
    
      return 0;
    }

    Řešení dotazu:


    Odpovědi

    tomes.io avatar 10.2.2013 16:55 tomes.io | skóre: 12 | blog: tomesh
    Rozbalit Rozbalit vše Re: Jak najit cestu k cdrom device v C
    Hm tak ono to staci primo napevno zadat /dev/cdrom, ioctl si pak poradi i se symlinkem. Myslel jsem, ze budu muset vystopovat z /dev/cdrom az primo ke skutecnemu zarizeni.
      int fd = open ("/dev/cdrom", O_RDONLY);
    10.2.2013 18:01 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Jak najit cestu k cdrom device v C
    Symbolické odkazy vyhodnocuje jádro, takže aplikace se o to starat nemusí.
    Jardík avatar 10.2.2013 21:11 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Jak najit cestu k cdrom device v C
    Jestli chvílu vydržíš, někde najdu kus BurnApp, co jsem kdysi psal.
    Věřím v jednoho Boha.
    Řešení 1× (frEon)
    Jardík avatar 10.2.2013 21:42 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Jak najit cestu k cdrom device v C
    Hmm, tak ty zdrojáky už asi nemám. Každopádně tu máš dokumentaci k api udevu. Postup je něco jako:
    struct udev *u = udev_new();
    struct udev_enumerate *ue = udev_enumerate_new(u);
    
    udev_enumerate_add_match_subsystem(ue, "block");
    
    // ..
    // tady možná přidat další filtry
    // ..
    
    udev_enumerate_scan_devices(ue);
    
    struct udev_list_entry* e = udev_enumerate_get_list_entry(ue);
    
    Pak třeba while cyklem projdeš přes jednotlivý vrácený zařízení, koukneš, jestli je tam property určující, že je to cdromka. Název si teď přesně nepamatuju, ale najdeš ho, když spustíš něco jako
    udevadm info --query=all --name=/dev/sr0
    
    Ještě koukni na attributy
    udevadm info --attribute-walk --name=/dev/sr0
    
    Z toho zjistíš, co má cdromka oproti třeba pevnýmu disku, apod. Možná třeba pak kouknout i na rodičovský zařízení, jestli je to na SCSI subsystému apod. Potom příkaz eject pošleš buď přímo přes ioctl k tomu určený (z hlavy si nepamatuju, možná něco jako CDROM_EJECT, do ví), nebo přes SG_IO ioctl s odpovídajícím CDB pro EJECT.
    Věřím v jednoho Boha.
    10.2.2013 23:09 Jardík
    Rozbalit Rozbalit vše Re: Jak najit cestu k cdrom device v C
    BTW pokud ti to má fungovat i na cdromce, kde není cédéčko, použij O_NONBLOCK pro open. Jelikož to chceš vysouvat, mohl bys použít i O_EXCL, kdyby náhodou zrovna něco vypalovalo a "je to hodné" a používá to taky O_EXCL (aneb linux a všechny nutné hacky pro exkluzivní přístup k cdromce, viz mé zápisy a možná diskuse o BurnApp), tak se ti to nepodaří otevřít (což je dobře, nechceš asi případné vypalování pojebat).

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.