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í
×
    dnes 11:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 10:44 | Nová verze

    Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.

    balda | Komentářů: 1
    včera 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Humor

    OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.

    NUKE GAZA! 🎆 | Komentářů: 3
    včera 03:00 | Nová verze

    Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    10.1. 03:00 | Komunita

    Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.

    Ladislav Hagara | Komentářů: 6
    9.1. 19:44 | Zajímavý software

    Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.

    Ladislav Hagara | Komentářů: 5
    9.1. 19:11 | IT novinky

    Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).

    NUKE GAZA! 🎆 | Komentářů: 2
    9.1. 14:22 | Zajímavý článek

    Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.

    Ladislav Hagara | Komentářů: 7
    9.1. 03:33 | Zajímavý software

    AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (4%)
     (0%)
     (9%)
     (20%)
     (3%)
     (5%)
     (3%)
     (11%)
     (49%)
    Celkem 381 hlasů
     Komentářů: 8, poslední 10.1. 23:18
    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: 346×
    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.