(I.O)Command_Line_Argument.c ([C.L.A] 화일 생성)
File_inverse_Copy.c ([C.L.A] 화일 뒤집어 옮기는)
- Command Line Argument
C프로그래밍은 실제 시스템에 사용되는 시스템 프로그래밍을 생각했을 때, CLA를 이용한 경우가 많습니다.
또한 상황에 따라 플랫폼의 제약과 하드웨어 종속적인 OS의 경우 저수준의 접근이 필요합니다.
다음 예제는 CLA를 사용하여 파일을 뒤집어 옮기는 간단한 프로그램을 구현한 것입니다.
/*===========================================================================*/
/* 실습)command line argument를 사용하여 아래의 table을
만족시켜주는 프로그램을 짜시오.
/*
-명령행 -입력 -출력
/* frw 표준화일 표준화일
frw @ test.txt // 일반화일
/* frw test.txt 일반화일 표준화일
frw test1.txt test2.txt // 일반화일
/*
-입력의 끝은 EOF(ctrl+z)
/* -실행순서는 1.frw 2.frw@test1.txt 3.frwtest1.txt
4.frwtest1.txt test2.txt 5.frwtest2.txt
/*===========================================================================*/
#include<stdio.h>
#include<string.h>
int main(int argc,char* argv[]){
FILE *fp;
FILE *fp2;
int c; // getchar()할 변수.
if(argc == 1){
while( (c=getc(stdin)) != EOF) // getc(stdin)
putc(c,stdout);
}
else if(argc == 2){
fp=fopen(argv[1],"r"); // 화일 오픈
while( (c=(getc(fp))) != EOF) // 입력
putc(c,stdout);
}
else if(argc == 3){
if(!strcmp(argv[1],"@")){
fp=fopen(argv[2],"w");
while( (c=getc(stdin)) != EOF)
putc(c,fp);
}
else{
fp=fopen(argv[1],"r"); //입력
fp2=fopen(argv[2],"w");
while( (c=getc(fp)) != EOF)
putc(c,fp2);
}
}
fclose(fp);
fclose(fp2);
return 0;
}
/*====================================================================================*/
/* 실습) 주어진 file의 내용을 통째로 뒤집어서 또 다를 주어진 file에
저장시켜주는 프로그램을 짜시오.
/* -frev test1.txt test2.txt
-argc가 3이 아니면 error처리.
/* -text mode & binary mode 구현.
/*====================================================================================*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc,char *argv[]){
FILE *fp1,*fp2;
int c;
long i=3L;
fcloseall();
if(argc != 3){
printf("error..");
exit(1);
}
else{
fp1 = fopen(argv[1],"w+");
fp2 = fopen(argv[2],"w+");
while((c=getc(stdin)) != EOF)
putc(c,fp1);
// rewind(fp1);
while(ftell(fp1) >= 0){
fseek(fp1,-(i++),SEEK_END);
c=getc(fp1);
putc(c,fp2);
// printf("~~~~~~~~");
if(ftell(fp1) == 1)
break;
}
fclose(fp1);
fclose(fp2);
}
return 0;
}
이 글은 스프링노트에서 작성되었습니다.
'Programming Language > C' 카테고리의 다른 글
_Mini_Project2_MAZE (0) | 2010.10.14 |
---|---|
C Tutorial ([C.L.A] 저수준) (0) | 2010.10.14 |
C Tutorial (L_list 역순출력) (0) | 2010.10.14 |
C Tutorial (트리 문자 읽기) (0) | 2010.10.14 |
_Mini_Project1_CALC (0) | 2010.10.14 |