- 论坛徽章:
- 0
|
- #include <stdio.h>
- #include <string.h>
- #define MAXLINE 1024
- #define MAXDATA 200
- typedef struct down_load{
- int updatetm;
- int downfile;
- int killproc;
- char downfile1[MAXDATA];
- char downfile2[MAXDATA];
- char kill[MAXDATA];
- }DOWN;
- void usage(char *pro)
- {
- printf("usage : %s <file>\n",pro);
- exit(0);
- }
- void extract_data(char *line,char *temp)
- {
- int i = 0,j = 0;
-
- for ( ; line[i] != '=' ; i++ );
- i++;
- for ( ; i < strlen(line); i++ ) {
- if ( line[i] == ' ' )
- continue;
- temp[j++] = line[i];
- }
- temp[j] = '\0';
- }
-
- DOWN load_file(FILE *s_fp)
- {
- DOWN config;
- char line[MAXLINE],temp[MAXDATA];
-
- while ( fgets(line,MAXLINE,s_fp) != NULL ) {
- if ( strstr(line,"updatetm") != NULL ) {
- extract_data(line,temp);
- config.updatetm = atoi(temp);
- }
- if ( strstr(line,"downfile") != NULL && strstr(line,"downfile1") == NULL && strstr(line,"downfile2") == NULL ) {
- extract_data(line,temp);
- config.downfile = atoi(temp);
- }
- if ( strstr(line,"killproc") != NULL ) {
- extract_data(line,temp);
- config.killproc = atoi(temp);
- }
- if ( strstr(line,"downfile1") != NULL ) {
- extract_data(line,temp);
- strcpy(config.downfile1,temp);
- }
- if ( strstr(line,"downfile2") != NULL ) {
- extract_data(line,temp);
- strcpy(config.downfile2,temp);
- }
- if ( strstr(line,"kill") != NULL ) {
- extract_data(line,temp);
- strcpy(config.kill,temp);
- }
- }
-
- return config;
- }
- void debug_config_print(DOWN config)
- {
- printf("updatetm : %d\n",config.updatetm);
- printf("downfile : %d\n",config.downfile);
- printf("killproc : %d\n",config.killproc);
- printf("downfile1: %s\n",config.downfile1);
- printf("downfile2: %s\n",config.downfile2);
- printf("kill : %s\n",config.kill);
- }
- int main(int argc,char **argv)
- {
- DOWN configs;
- FILE *s_fp;
-
- if ( argc == 1 ) usage(argv[0]);
- if ( (s_fp = fopen(argv[1],"r")) == NULL ) {
- printf("[-] open %s failed.\n",argv[1]);
- exit(0);
- }
-
- configs = load_file(s_fp);
- fclose(s_fp);
-
- debug_config_print(configs);
- printf("\n[+] done.\n");
-
- return 0;
- }
复制代码 |
|