=========================================================================================================================================
타이머 ( 시계 )
=========================================================================================================================================
2개의 타이머이용
=========================================================================================================================================
백그라운드작업 ( 2가지의 일 동시에 -> 무한루프안걸리게끔 )
========================================================================================================================================
콜백함수
=========================================================================================================================================
일회용타이머
=========================================================================================================================================
API 동적할당하기
=========================================================================================================================================
작업영역 ( 창이 변경시 )
=========================================================================================================================================
콘솔창에서 FTP사용
입력 : ftp 주소
파일보내기 : put 파일명
파일받기 : get 파일명
여러파일 : mget *.zip (확장자가 zip인 파일모두 받아온다.)
이때 파일마다 물어보는데 ( yes / no ) prompt 입력시 해결된다.
bin : 텍스트파일을 binary모드로 가져온다.
? : 명령어 목록 쫙~
접종시 : Ctrl + D (도스는 quit)
=========================================================================================================================================
HEX 뷰어
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define MAX_FILE_SIZE 1400
void HexaView(void *vp, int iSize) //불러온파일값들을 16진수로 바꿔줌
{
int iCnt;
if(0 == vp)
{
return;
}
if(MAX_FILE_SIZE < iSize)
{
iSize = MAX_FILE_SIZE;
}
printf(" _ADDRESS_ ");
for(iCnt=0;16>iCnt;++iCnt)
{
printf("%02X ", iCnt);
}
putchar(' ');
for(iCnt=0;16>iCnt;++iCnt)
{
printf("%X", iCnt);
}
putchar('\n');
for(iCnt=0; ((16*4)+11)>iCnt; ++iCnt)
{
putchar('-');
}
putchar('\n');
iCnt = 0;
printf("0x%08X ", iCnt);
while(16 > iCnt) //hexa
{
printf("%02X ", *(((unsigned char*)vp) + iCnt) );
++iCnt;
}
putchar(' ');
for(iCnt=iCnt-16; 16>iCnt; ++iCnt) // 코드영역(소스)
{
if((32 > (*(((unsigned char*)vp) + iCnt))) ||
(127 < (*(((unsigned char*)vp) + iCnt))))
{
putchar ('.'); // text모드 = enter키를 1바이트로본다.
// binary모드 = 2바이트로본다.
}
else
{
printf("%c", *(((unsigned char*)vp) + iCnt) );
}
}
putchar('\n');
//여기까지 파일의 16번째값까지 변환되서 출력됨
iSize(총크기), 반복문이용해서 파일끝까지 변환되게 바꿔야함.
}
int main(int iArg, char *capArg[]) // 파일을 불러오는쪽
{
int iFileDS;
int iRet;
struct stat stFileInfo;
unsigned char *ucpData = 0;
if(2 != iArg)
{
printf("error..\n");
return 0;
}
iFileDS = open(capArg[1], O_RDONLY);
// O_RDONLY | 바이너리모드로 열게해주는명령어와
//정의된 헤더파일을 찾아서 include해야함
if(0 > iFileDS)
{
printf("can't file [%s]file .\n", capArg[1]);
return 0;
}
iRet = fstat(iFileDS, &stFileInfo);
if(0 > iRet)
{
printf("can't read file information.");
close(iFileDS);
return 0;
}
else
{
iRet=stFileInfo.st_size;
}
if(MAX_FILE_SIZE < iRet)
{
iRet=MAX_FILE_SIZE;
}
ucpData = (unsigned char*)malloc(iRet);
if(0 == ucpData)
{
printf("memory space is not enough\n");
close(iFileDS);
return 0;
}
iRet = read(iFileDS,ucpData,iRet);
if(0 > iRet)
{
printf("can't read file.\n");
close(iFileDS);
free(ucpData);
return 0;
}
HexaView ( ucpData , iRet);
free(ucpData);
return 0;
}
'코스웨어 > 10년 시스템제어' 카테고리의 다른 글
시스템 제어 일일 보고서 - 8조 김민철(4번) (1) | 2010.05.18 |
---|---|
시스템제어 - 헥사뷰어 실습 파일입니다. (0) | 2010.05.18 |
5월 14일 보고서 (3번 김락영) (2) | 2010.05.16 |
2010. 05. 13 김동수(2번) (2) | 2010.05.13 |
일일보고 순서 ((( 수정 ))) (1) | 2010.05.12 |
시스템제어(10/05/10) - C++(참조전달, 생성자, 소멸자), WinAPI(TextOut, GraphOut, MessageBox) (1) | 2010.05.10 |
[시스템 제어]5월 7일 26번 주진호 (1) | 2010.05.10 |
도서관리 프로그램 (2) | 2010.05.10 |