Ich möchte ganze Zahlen aus einer Zeichenfolge extrahieren, z. Ich möchte 0 als Gruppenbezeichner und 1 als mdev-Bezeichner aus der Zeichenfolge "/ dev/nkdev/group0/mdev1" extrahieren.Wie extrahiere ich Integer aus String im Linux-Kernel?
In der obigen Zeichenfolge "/ dev/nkdev/group" ist ein festes Muster in der Eingabe, Gruppen-ID kann eine ganze Zahl zwischen 0-9 sein und "mdev" ist auch nicht festgelegt, es kann eine beliebige Zeichenfolge folgen eine ganze Zahl.
verwendet I-Code folgende
#define NO_INTEGER "%0[^0-9]"
res = sscanf(dev_name_p, NO_INTEGER "%u" NO_INTEGER "%u",
&group_id, &mdev_id);
Aber ich fand Sprungsequenz nicht in Kernel unterstützt wird. Kann irgendjemand sagen, ob es eine Kernel-Library-Funktion gibt, die den Job erledigt?
Ist es nicht möglich, das Format '/ dev/zu verwenden nkdev/group% u/mdev% u'? – bzeaman
Danke, es hätte möglich sein können, wenn mdev ein festes Muster wäre, in meinem Fall ist mdev auch kein fixed. Es kann eine beliebige Zeichenfolge sein. – iGRJ
Was ist dann mit '/ dev/nkdev/group% u /% * s% u'? – bzeaman