• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Wildcards abarbeiten mit C-Funktionen

Phillinger

Member
Salve,

ich portiere gerade eine Software von Windows nach Linux, die _findfirst, _findnext usw. nutzt. Diese Windows-Funktionen können Verzeichnisse nach Mustern durchsuchen und dabei auch Wildcards (*.*, bla*.txt usw.) verarbeiten.

Wie kann ich das mit POSIX-konformen Mitteln anstellen? Mein erster Lösungsansatz wäre, mit opendir() das Verzeichnis zu öffnen und dann mit readdir() einen Eintrag nach dem nächsten unter die Lupe zu nehmen. Gibt es nun eine Möglichkeit, riesige if und else if-Gebilde zu vermeiden?
 
Wieso riesig? Ist doch nur ein Aufruf mit regcomp:
Code:
while((de = readdir(dirptr)) != NULL) {
    if(regexec(reg, de, ...) != 0)
        continue;
    ...
}
Alternativ kann man glob() verwenden, das macht aber auch was anderes als readdir, logischerweise.
 
Oben