저수준 파일 입출력을 사용한 파일에서 정보 읽어오는 함수
인자 설명:
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 |