[운영체제] 쉘 프로그램
- 최초 등록일
- 2003.11.14
- 최종 저작일
- 2003.11
- 11페이지/ 한컴오피스
- 가격 1,500원
소개글
유닉스나 리눅스 같은 쉘 환경을 c언어를 이용하여 프로그램했습니다.
예) 아래와 같은 쉘 환경을 제공해준다. 유닉스나 리눅스에서 실행가능하다.
hw05> cat << exit
this is test.
Good~~~~
exit
this is test.
Good~~~~
hw05> history
1 ls -al
2 ls -al > 1.out
3 cat 1.out
4 cat << exit
5 history
목차
1. source code
2. 출력파일(*.out)2. hw05.out
3. c_out
본문내용
for (i=0; i<argc; i++) {
if((strcmp(argv[i],">") == 0) || (strcmp(argv[i], ">>") == 0)){
if(argv[i+1] == NULL)
printf("You must be forgotten next argument\n");
if(strcmp(argv[i],">") == 0 )
fid=open(argv[i+1],O_WRONLY | O_CREAT | O_TRUNC,0644);
else
fid = open(argv[i+1], O_WRONLY | O_APPEND | O_CREAT);
// ">>"일 경우 APPEND 옵션을 주어야 한다.
if(fid < 0) { // 파일을 열지 못할경우 에러
perror(argv[i+1]);
exit(1);
}
imsi = dup(STDOUT_FILENO); // stdout을 백업하고
dup2(fid,STDOUT_FILENO); // open한 fid가 현재의 출력을 대신한다.
close(fid);
free (argv[i]); // 쓸모가 없게 된 부분은 제거한다.
free(argv[i+1]);
argv[i] = argv[i+1] = NULL;
argc -= 2;
opt_out = 1; // 현재 표준출력모드가 아니라는 옵션
}
참고 자료
없음