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 19:55 | Nová verze

    Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Bezpečnostní upozornění

    Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.

    Ladislav Hagara | Komentářů: 7
    včera 13:22 | Upozornění

    V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Komunita

    VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.

    Ladislav Hagara | Komentářů: 1
    včera 03:22 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    23.10. 20:11 | Komunita

    V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).

    Ladislav Hagara | Komentářů: 0
    23.10. 13:22 | Nová verze

    Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.

    Ladislav Hagara | Komentářů: 0
    23.10. 12:55 | Pozvánky

    Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.

    Ladislav Hagara | Komentářů: 0
    23.10. 05:33 | IT novinky

    Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.

    Ladislav Hagara | Komentářů: 2
    23.10. 05:22 | Nová verze

    Před konferencí Next.js Conf 2025 bylo oznámeno vydání nové verze 16 open source frameworku Next.js (Wikipedie) pro psaní webových aplikací v Reactu. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (20%)
     (20%)
     (24%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 268 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    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: 352×
    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.