#include <stdio.h>
#include <string.h>
#define KEYWORD "filter"
#define FILTER_FILE "/etc/key_rules.conf"
char *clearup_string1(char *buf)
{
int len;
char ch;
char *ptr;
if (NULL == buf)
return NULL;
/* skip space and tab */
while(*buf)
{
if (*buf == ' ' || *buf == '\t')
buf++;
else
break;
}
if (buf)
ptr = buf;
else
return NULL;
/* skip space and tab, return and new line character */
len = strlen(buf);
while(len){
ch = buf[len-1];
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n'){
buf[len-1] = '\0';
len--;
}
else{
break;
}
}
return ptr;
}
char *clearup_string2(char *buf)
{
int len;
char ch;
char *ptr;
if (NULL == buf)
return NULL;
/* skip space and tab */
while(*buf)
{
if (*buf == ' ' || *buf == '\t' || *buf == '=' || *buf == '\"')
buf++;
else
break;
}
if (buf)
ptr = buf;
else
return NULL;
/* skip space and tab, return and new line character */
len = strlen(buf);
while(len){
ch = buf[len-1];
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '=' || ch == '\"'){
buf[len-1] = '\0';
len--;
}
else{
break;
}
}
return ptr;
}
int main()
{
FILE *fp;
char *ptr;
char buf[1024];
fp = fopen(FILTER_FILE, "r");
if (NULL == fp)
{
fprintf(stderr, "fopen fail.\n");
return -1;
}
/* reverse file line by line */
while(fgets(buf, sizeof(buf), fp))
{
if ( NULL != (ptr = clearup_string1(buf)))
{
if (*ptr == '#') /* skip comment line */
continue;
else if (0 == strncmp(ptr, KEYWORD, strlen(KEYWORD)) ) /* match KEYWORD */
{
ptr = clearup_string2(ptr+strlen(KEYWORD));
if (ptr){
/* hanle the key */
}
else{
fprintf(stderr, "%s\n", ptr);
}
}
else{
fprintf(stderr, "%s\n", ptr);
}
}
}
}
#include <string.h>
#define KEYWORD "filter"
#define FILTER_FILE "/etc/key_rules.conf"
char *clearup_string1(char *buf)
{
int len;
char ch;
char *ptr;
if (NULL == buf)
return NULL;
/* skip space and tab */
while(*buf)
{
if (*buf == ' ' || *buf == '\t')
buf++;
else
break;
}
if (buf)
ptr = buf;
else
return NULL;
/* skip space and tab, return and new line character */
len = strlen(buf);
while(len){
ch = buf[len-1];
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n'){
buf[len-1] = '\0';
len--;
}
else{
break;
}
}
return ptr;
}
char *clearup_string2(char *buf)
{
int len;
char ch;
char *ptr;
if (NULL == buf)
return NULL;
/* skip space and tab */
while(*buf)
{
if (*buf == ' ' || *buf == '\t' || *buf == '=' || *buf == '\"')
buf++;
else
break;
}
if (buf)
ptr = buf;
else
return NULL;
/* skip space and tab, return and new line character */
len = strlen(buf);
while(len){
ch = buf[len-1];
if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '=' || ch == '\"'){
buf[len-1] = '\0';
len--;
}
else{
break;
}
}
return ptr;
}
int main()
{
FILE *fp;
char *ptr;
char buf[1024];
fp = fopen(FILTER_FILE, "r");
if (NULL == fp)
{
fprintf(stderr, "fopen fail.\n");
return -1;
}
/* reverse file line by line */
while(fgets(buf, sizeof(buf), fp))
{
if ( NULL != (ptr = clearup_string1(buf)))
{
if (*ptr == '#') /* skip comment line */
continue;
else if (0 == strncmp(ptr, KEYWORD, strlen(KEYWORD)) ) /* match KEYWORD */
{
ptr = clearup_string2(ptr+strlen(KEYWORD));
if (ptr){
/* hanle the key */
}
else{
fprintf(stderr, "%s\n", ptr);
}
}
else{
fprintf(stderr, "%s\n", ptr);
}
}
}
}