본문 바로가기
Ghost의 Linux C Note(노트)/Ghost의 Linux C언어 리다이렉션

Ghost 다시 죽음...? ㅠㅠ

by dark ghost 2012. 6. 27.
728x90
반응형

리다이렉션.(리 다이(Re Die) : 다시 죽음?.)

1. 위 그림은 리다이렉션 소스이다. 처음 구문을 보면 1번으로 번호가 매겨져 있고 앞에 인자는 stdout를 인자로 받고 있다. 화면에 출력해주는 인자이고 stdout와 반대 되는 출력 인자는 stderr이라는 인자로 2번째 구문에서 받고 있다. 차이점이라면 stdout는 오류가 없는 프로그램을 화면에 출력하는 인자이고 stderr은 오류가 있을시에 화면에 출력을 해주는 인자이다. 그리고 이렇게 따로구현해 놓은 이유는 제목을 보면 알 수 있듯이 리다이렉션을 위해 구현해 놓았다.

 

2. 컴파일 실행 후 ./main을 보통 실행 시킬때 쓰지만 이번에는 리다이렉션을 위해 ./main 1> test.txt 라고 명령어를 쓴다 ./main은 일반적으로 쓸때와 같다.그다음 구문인 1> test.txt 라는 구문이 리다이렉션 구문인데 아까 소스에서 번호를 매겼던 것을 기억 할 것이다. 그 번호에 해당하는 strout를 오른쪽으로 test.txt를 넣겠다는 것이다. 즉 리다이렉션이란 방향을 바꾸어 주는 것을 말한다. main에 있는 것을 다른 오른 쪽 방향으로 test.txt 라는 파일로 옮기는 것 이다. 

 

3. 위 그림은 vi로 test.txt 파일을 열어본 화면으로 왼쪽을 보면 1번이 있다. 리다이렉션으로 넣은 것 은 stdout을 넣은 것 이다.  그럼 2번째 것도 되는지 실행 시켜 본다.

 

4. 2번째 구문을 출력 시켜 보기 위해 ./main 뒤에 2> test.txt라고 붙어 있는 것을 볼 수 있다. 2번째 구문을 test.txt 파일에 넣기 위한 구문이다.

 

5. 위 그림은 2번째 구문을 리다이렉션 하여 실행 시킨 것으로 vi를 열어서 확인 해보면 앞에 2라는 숫자가 있는 것을 확인 할 수 있는데 2번째 구문이 stderr로 한 구문이었다. 이렇게 리다이렉션으로 자기가 한 작업을 텍스트 파일로 만들수 있는 것 이다. 마지막으로 1번째와 2번째 두개의 구문을 test.txt에 넣어 볼 것이다.

 

6. 위 그림에서 보면 알 수 있겠지만 번호 대신에 ./main &> test.txt를 넣었다. 이렇게 하면 2개의 구문이 다 test.txt 파일에 저장 될 것이다.

 

7. 위 그림에서 확인 할 수있듯이 2개의 구문이 다 저장 된 것을 볼 수있다. 이렇게 리다이렉션을 이용하여 다양하게 text 문서로 저장 시킬수 있으니 잘 활용 하면 좋을 것이다.

728x90
반응형

댓글