저수준 파일 입출력을 사용한 파일에서 정보 읽어오는 함수

인자 설명:

  file_location: 파일위치+파일 이름명

  find_index: 파일에서 찾을 index

 

 

 

 

 

 

 

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
 
int read_info(char* file_location, char* find_index)
{
    int file_descriptor;
    char* find_location;
    char file_index[1024= {0};
    char file_contents[1024= {0};
    char index[1024= {0};
    int ret, iCnt=0;
    int inCnt=0;
 
#if 0
    printf("[FD] location= %s\n", file_location);
    printf("[FD] index= %s\n", find_index);
#endif
    printf("\n");
 
    if( (file_descriptor = open(file_location,O_RDONLY)) > 0)
    {
        if( read(file_descriptor,file_contents,sizeof(file_contents)) > 0 )
        {
            while(iCnt<strlen(file_contents))
            {
                if*(file_contents+iCnt) != '\n' )
                {
                    printf("[D] file_contents[%d]:%c [0x%02x]\n",iCnt, *(file_contents+iCnt), *(file_contents+iCnt));
 
                }
                iCnt++;
            }
            printf("\n");
            puts(file_contents);
            
            
#if 0
                printf("Input index to find: ");
                fgets(file_index,sizeof(file_index),stdin);
                if*(file_index+0== '\n')
                {
                    printf("Exit Program...\n");
                    break;
                }
#endif
        
            find_location = strstr(file_contents,find_index);
            while*(find_location+inCnt) != '\n' )
            {
                printf("%c",*(find_location+inCnt));
                inCnt++;
            }
 
            printf("\n\n");
    
 
 
 
        } //end of read
            
        else
        {
            printf("read Error!!!\n");
            return -2;
        }
        
        close(file_descriptor);
    }
        
    else
    {
        printf("File open Fail...\n");
        return -3;
    }
    return 0;
}
 
int main(int argc, char* argv[])
{
    char file_index[1024= {0};
    int iCnt;
    if( (argc == 1|| (argc > 3|| (argc == 2) )
    {
        printf("\nArgument Error...\n");
        printf("\nUsing manual: ./(execution_file_name) (file_location) (find_index)\n\n");
        return -1;
    }
 
    read_info(argv[1], argv[2]);
#if 0
    while(1)
    {
        printf("Input index to find: ");
        fgets(file_index,sizeof(file_index),stdin);
        read_info(argv[1], file_index);
        for(iCnt=0; iCnt<sizeof(file_index); iCnt++)
        {
            file_index[iCnt]=0;
        }
    }
#endif
 
    return 0;
}
 

'언어 > 큐브인턴(Embedded)' 카테고리의 다른 글

PINA, PORTA, DDRA 설명(LED관련)  (0) 2016.10.31
UART LED가 정상 작동을 안 하는 경우  (0) 2016.10.28
LED on/off  (0) 2016.10.28
printf 함수 리턴  (0) 2016.09.30
하버드 구조 VS 폰 노이만 구조  (0) 2016.09.21
Posted by 知彼知己百戰不殆
,