Comment puis-je utiliser les expressions Regex en programmation C ? par exemple, si je veux trouver une ligne dans un fichier
DAEMONS=(sysklogd network sshd !netfs !crond)
puis affichez chaque démon dans une ligne séparée comme ceci
sysklogd
network
sshd
!netfs
!crond
Voici ce que j'ai fait jusqu'à présent
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <regex.h>
#define tofind "[a-z A-Z] $"
int main(){
FILE *fp;
char line[1024];
int retval = 0;
char address[256];
regex_t re;
if(regcomp(&re, tofind, REG_EXTENDED) != 0)
return;
fp = fopen("/etc/rc.conf","r");//this file has this line "DAEMONS=(sysklogd network sshd !netfs !crond)"
while((fgets(line, 1024, fp)) != NULL) {
if((retval = regexec(&re, address, 0, NULL, 0)) == 0)
printf("%s\n", address);
}
}
Toute aide serait très appréciée.