1인 1프로젝트
프로그래밍 언어 복습
youngsouk
2021. 3. 30. 09:39
씹어먹는 C 언어 시작하기
modoocode.com
이 사이트의 예제들을 눈으로 훏어보고 포인터를 활용하는 간단한 프로그램들을 만들어보면서 기억을 되살렸다.
또한 이전에 풀었던 해킹 문제 writeup 글들과 리눅스 라이브러리 코드 글들을 보면서 해킹 지식을 기억하려고 노력했다.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BUF_SIZE 100
int main()
{
FILE *fp = NULL;
FILE *fp2 = NULL;
int nbyte=0;
char buf[BUF_SIZE]={0, };
// file open
fp = fopen("./proto.c","rb");
if ( fp == NULL )
{
printf(" fopen() error \n");
exit(0);
}
fp2 = fopen("./p.txt","wb");
if ( fp2 == NULL )
{
printf(" fopen() error \n");
exit(0);
}
// Read data from proto.c : BUF_SIZE
while(1)
{
memset(&buf, 0, BUF_SIZE);
// file read
nbyte = fread(buf, 1, BUF_SIZE, fp);
if ( nbyte <= 0 ){
break;
}
// new file write
fwrite(buf, 1, nbyte, fp2);
}
fclose(fp);
fclose(fp2);
}
이 코드를 작성하면서 memset, scanf, FILE IO, socket 등에 대한 지식을 되살렸다.
이 코드 외에도 github에서 C언어로 짜여진 프로그램 분석을 열심히 했다.