백준을 java로 푸시다 보면, 파일로 입력받고 싶습니다. 결과를 파일로 출력하고 싶습니다. 이런 경우가 정말 많습니다. 그리고 문제 출제를 하다 보면, 명령어 형식으로 프로그램을 실행해야 할 경우가 왕왕 있습니다. 어떻게 해야 하는지 간단하게 알아보겠습니다. intellij 22.03 버전으로 실습했음을 유념해 주시면 되겠습니다. 먼저 src 폴더에 들어가 보겠습니다. 이 폴더에는 Main.java가 있습니다. 새로운 객체 A를 생성한 다음에, a의 내용을 출력합니다. 다음 A.java를 보겠습니다. 여기에는 그냥 A 객체를 출력하라 했을 때 a = {a의 값} 형태로 출력하게 하는 toString만 재정의 되어 있습니다. Run/Debug Configurations에 들어갑니다. Build and r..
리다이렉션 검색 결과
안녕하세요. 이번 시간에는 /dev/null 2>&1의 의미를 알아보겠습니다. 이 글을 읽기 전에 파일 디스크립터와 dup2 함수 등에 대한 개념을 잡고 오시면 조금 더 편할 듯 싶습니다. [관련글] 파일 디스크립터와 관련된 dup2 함수에 대해 알아봅시다. 먼저 0, 1, 2는 표준 입력인 stdin, 표준 출력인 stdout, 에러 stderr를 뜻하는 것은 알고 계실 겁니다. 다 터미널과 연관이 되어 있습니다. 따로 파일 디스크립터가 다른 것을 가리키게 하지 않는 (dup2나 dup 등을 이용해서) 이상은요. 파일 디스크립터 (fd)는 프로세스마다 독립적으로 가지고 있는 자원 중 하나입니다. 먼저, cat 2.txt는 2.txt의 내용을 출력해 줍니다. 만약에 없으면 No such file or d..
보통 stdin은 표준 입력, stdout은 표준 출력, stderr은 표준 에러를 나타내는 것들입니다. 이에 대해서는 파일에 대해서 다룰 때 이야기 하도록 하고요. 자세히 들어가면 글이 길어질 듯 하니, 간단하게 어떤 식으로만 쓰는지 알아보도록 하겠습니다. 대략적인 그림부터 보겠습니다. 이 그림만 보면, stdin, 즉 표준 입력 스트림에서 읽어오고, stdout, 표준 출력 스트림에 씁니다. 그리고 오류가 발생한 경우 stderr, 표준 에러 스트림에 씁니다. 그런데, 이것을 재지정 하는 방법이 없을까요? 이를 리다이렉션이라고 이야기 합니다. 먼저, >는, 출력 재지향을 의미합니다. 먼저 head 명령어를 이용해 봅시다. 저는 아직 리다이렉션을 하지 않았기 때문에, stdout 스트림을 쓸 것이고, ..
최근댓글