c언어 redirection 문제 질문드립니다..
글쓴이: tlqkdto89 / 작성시간: 목, 2012/12/06 - 4:22오후
void redirection(int i) { int j; int fd = 0; for(j = 1; j < i - 1; j++) { if(!strcmp(cmdvector[j], ">")) { if((fd = open(cmdvector[j + 1], O_WRONLY | O_CREAT, 0644)) < 0) { fatal("open error"); } dup2(fd, STDOUT_FILENO); cmdvector[j] = '\0'; cmdvector[j + 1] = '\0'; } else if(!strcmp(cmdvector[j], "<")) { if((fd = open(cmdvector[j + 1], O_RDONLY, 0644)) < 0) { fatal("read error"); } dup2(fd, STDIN_FILENO); cmdvector[j] = '\0'; cmdvector[j + 1] = '\0'; } continue; } }
인자로 넘겨받은 i는 cmdline을 분석하고 넘겨받은 token의 개수입니다.
cmdvector는 입력한 명령어이구요..
이걸 실행하면 cat > a.txt와 cat < a.txt는 실행이 잘 됩니다.
그런데 cat < a.txt > b.txt와 같은 명령어는 실행이 되지 않습니다..
이 부분은 어떻게 구현하는게 좋을지 궁금합니다.. 도와주셔서 감사합니다. ㅠ
Forums:
댓글 달기