본문 바로가기
코스웨어/16년 스마트컨트롤러

20160307_박진한_업무일지_파일입출력

by 알 수 없는 사용자 2016. 3. 8.
728x90
반응형

파일 열기

FILE*fopen(const char *filename, const char*mode);

FILE*fp =  fopen("A.txt","r"); <- 1줄짜리로 사용하고 싶을때 사용

FILE*f =  fopen("A.txt","r");

FILE*fp;  <- 2줄짜리를 사용하고 싶을때 사용

파일입출력 함수 원형과 함수를 호출했을 때

1. 인자의개수

2. 인자의 type

3. 반환값 일치 여부

순으로 반환괎 일치 여부를 판별한다. 

이소스를 사용하면 메모장에 글자가 입력된다.

#include <stdio.h>


int main()
{
 FILE*fp =  fopen("A.txt","w");
 printf("안녕하세요\n");
 fprintf(fp,"하이하이\n");

 fclose(fp);  
 
 return 0;
 
}

이 소스를 사용할 경우 현재 디렉토리에 A라는 이름의 텍스트 파일이 생성된다.



용어 정리

- 스트림(stream) : 1byte씩 전송하는것을 스트림이라고 한다. ex) 음악 스트리밍
- 내부버퍼 : 임시적 내부 저장공간
- fp : file pointer 현재 읽고 있는 위치 ex) 음악을 어느정도 위치까지 들었는지 가르키는 것
- 액세스 - 접근하다. 건드리는 것
- 파티션 - 일정한 공간을 쪼개는 것
- 드라이브 : 파티션을 구분하는 것

드라이브 명을 기준으로 시작하는것을 절대 드라이브라고 한다.

C:\ , \ = 절대경로

CR - Carriage Return \r[13]
LF - Line Feed \n [10]

\n은 두가지를 다 이행시켜 준다.

if(A == EOF)
  EOF = End Of File

fopen

#include <stdio.h>


int main()
{
 FILE *f;
 f=fopen("C:\\영화\\영구와 땡칠이.avi","rb");
 if(f==NULL){
 printf("얼시구. 파일이 안 보이네요\ㅜ");
 }
 
 
 
 return 0;
 
}

리턴값이 주소일 경우 0을 많이 리턴해주고, 정수를 리턴하는 경우에는 음수값을 리턴해준다. 보통 -1을 리턴해준다.


위와 같은 결과가 나온다.

헥사값을 구하는 방법
#include <stdio.h>

void Hexaview(unsigned char *ucpData, unsigned int uiLen)
{
 unsigned int uiCnt;
 unsigned int ui16Cnt;

 printf("=======================\n");
 printf("======hexa viewer======\n");

 uiCnt = 0;
 while(160>uiCnt)
 {
  printf("%p ", uiCnt);
  
  ui16Cnt = 0;
  
  while(16>ui16Cnt)
  {
   printf("%02X ", *ucpData);
   ui16Cnt = ui16Cnt+1;
   ucpData = ucpData+1;   
   
  }
  printf("\n");
  
 uiCnt = uiCnt+16;
 }
}


이러한 결과가 나온다.


728x90