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 21:00 | IT novinky

    Dnes startuje prodej headsetu Steam Frame. Počínaje dneškem se tedy můžete zapsat na seznam pro jeden z následujících modelů: Steam Frame 256 GB za 1 049 EUR a Steam Frame 1 TB za 1 279 EUR.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | Bezpečnostní upozornění

    Vládní CERT upozorňuje na kritickou zranitelnost v GitLab Community Edition (CE) a Enterprise Edition (EE). Zranitelnost CVE-2026-85706 typu path traversal v Repository Commits API dosahuje skóre CVSS 10.0. Kvůli nedostatečnému omezení cest a chybějícímu vynucení autentizace může za určitých podmínek neautentizovaný útočník číst libovolné soubory ze serveru GitLab, a získat tak přístup k citlivým datům a konfiguraci instance.

    Ladislav Hagara | Komentářů: 0
    dnes 12:00 | Zajímavý projekt

    Linux může běžet nativně na ESP32-S3 – bez emulace a rovnou s 9,7″ e-paperem.

    Ladislav Hagara | Komentářů: 1
    dnes 00:11 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 7.0.0. Pro sandboxing se na Linuxu nově používá Landlock místo Bubblewrap. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Nová verze

    Správce fotografií Shotwell byl vydán ve verzi 33.0 (GitLab). Hlavní novinkou v tomto vydání po dvou letech je přechod na GTK4.

    ʚĭɞ 🍉 | Komentářů: 0
    včera 01:44 | Komunita

    Na YouTube byly publikovány videozáznamy přednášek a na Flickru fotografie z konference EuroPython 2026.

    Ladislav Hagara | Komentářů: 0
    12.9. 18:11 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    12.9. 02:00 | Zajímavý článek

    Jiří Eischmann se v příspěvku Fiasko jménem W Social na svém blogu věnuje evropské sociální síti W: "W Social je příkladem toho, že se problémy sociální sítí nedají řešit od exekutivního stolu. Když na začátku tohoto roku v Davosu oznámili vznik nové sociální sítě W Social, politici se mohli přetrhnout ve chvalozpěvech. Konečně evropská sociální síť a ještě s ověřením identity. … Jak se ukázalo, když v Davosu W Social oznamovali, neměli kromě

    … více »
    Ladislav Hagara | Komentářů: 20
    11.9. 18:00 | Bezpečnostní upozornění

    Výrobce hardwarových kryptoměnových peněženek Trezor upozorňuje na bezpečnostní incident u společnosti Brevo, kterou využívá k odesílání newsletterů. Útočník na e-mailové adresy odeslal phishingový e-mail.

    Ladislav Hagara | Komentářů: 5
    11.9. 14:33 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.

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

    Dotaz: Jak zjistit cestu k device z device number?

    18.2.2010 21:07 kralyk z abclinuxu | skóre: 29 | blog:
    Jak zjistit cestu k device z device number?
    Přečteno: 575×
    Mám device number (buď holé v jednom čísle, nebo převedené do formátu major:minor, to je jedno), např 8:1 je u mně /dev/sda1 atd.

    Jaký je "správný" způsob, jak se z tohohle čísla dostat ke konkrétní block device v /dev?
    Koukal jsem např, že v /dev/block/ jsou odpovídají symlinky, ale dá se na tohle spolehnout, že to tak bude i na jiných linuxových strojích? Odpovídá to POSIXu?
    Nebo budu muset hledat v /dev a statem zjišťovat, který device odpovídá?

    "správným" způsobem mám na mysli způsob, který bude fungovat pokud možno všude pokud možno bez dependencí... ideálně POSIX conforming.

    Díky moc za každou pomoc

    Řešení dotazu:


    Odpovědi

    Fuky avatar 19.2.2010 00:36 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?

    major/minor number to device path translate

    O /dev/block/ se stará udev, tak by to snad na Linuxových strojích s jádrem 2.6 neměl být problém.

    $ vim /etc/udev/rules.d/50-udev.rules
    SUBSYSTEM=="block",    SYMLINK+="block/%M:%m"
    

    Jestli se nepletu, tak v POSIX žádná zmíňka o /dev/block není IEEE Std 1003.1, 2004 Edition, ISO/IEC 9945.

    19.2.2010 01:16 Delaunay | skóre: 17 | blog:
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Pochybuji že existuje nějaký "správný" způsob. Pokud se o tvorbu souborů zařízení na cílovém systému stará udev, tak bych zřejmě doporučil knihovnu libudev.
    19.2.2010 12:39 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Ok díky,
    vidím to tak, že použiju udev/libudev a jako fallback prolistování /devu statem.
    22.2.2010 11:58 Ivan
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Zadny overeny zpusob bohuzel existovat nemuze, kernel jmena zarizeni nezna. pokud spustis "mknod /tmp/abc b 8 1" tak budes mit "sda1" klidne i v temp-u. Nejjstejsi reseni je opravdu ten find a stat.
    22.2.2010 18:16 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Jak zjistit cestu k device z device number?
    Moje současné řešení vypadá takhle:
    
    string device_from_number(unsigned int major, unsigned int minor)
    {
      const string devdir = "/dev/";
      const string devblockdir = "/dev/block/";
      stringstream ss;
      string result = "";
    
      ss << major << ':' << minor << flush;
      if (file_exists(devblockdir))
      {
        if (!dir_empty(devblockdir))
        {
          if (file_exists(devblockdir+ss.str())) result = devblockdir+ss.str();
        } else goto fallback;
      } else
      {
        fallback:
        DIR* dir;
        dirent* ent;
        dir = opendir(devdir.c_str());
        if (dir)
        {
          while (ent = readdir(dir))
          {
            struct stat finfo;
            string fn = devdir + ent->d_name;
            if (!stat(fn.c_str(), &finfo))
            {
              if (S_ISBLK(finfo.st_mode) && (makedev(major, minor) == finfo.st_rdev))
              {
                result = fn;
                break;
              }
            }
          }
        } else
        {
          ohshiT(errno, ERR_OPENING_DIR, "Could not open directory: '"+devdir+"'");
        }
        closedir(dir);
      }
      return result;
    }
    
    (Toho makra dole si nevšímejte, tím vyhazuju exceptions)
    Pokud není device nalezen, je vrácen prázdný string.

    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.