귀하의 프로그램 :
두 가지 프로그램을 작성합니다 (둘 다 동일한 언어로). 스토리지 프로그램은 STDIN에서 문자열을 가져와 영속적 인 위치 (아래 참조)에 저장 한 다음 오류없이 종료합니다. 검색 프로그램은 입력을받지 않고 저장된 문자열을 검색하여 STDOUT에 인쇄합니다.
지속성에 대한 객관적인 테스트 :
로컬 머신에서 스토리지 프로그램을 실행 한 다음 로컬 머신의 전원을 껐다 켜고 로컬 머신에서 검색 프로그램을 호출 할 수 있어야합니다. 이 재부팅 테스트를 통과하는 한 웹 에서조차도 원하는 문자열을 숨길 수 있습니다.
테스트 사례 :
저장 후 검색 :
echo foo | Store
Retrieve
foo
반복 된 상점은 (set () 메소드와 같이) 겹쳐 써야합니다.
echo foo | Store
echo bar | Store
Retrieve
bar
반복 검색은 비파괴 적입니다 (get () 메소드처럼).
echo foo | Store
Retrieve
foo
Retrieve
foo
스토리지를 호출하기 전에 검색 :
당신은 이것에 대해 걱정할 필요가 없습니다. 검색 프로그램은 스토리지 프로그램이 과거 어느 시점에서 실행되었다고 가정 할 수 있습니다.
입력 / 출력 유연성.
사람들은 엄격한 STDIN / STDOUT에서 표준 IO 규칙으로 이것을 확장하도록 요청했습니다. 허점이 너무 많기 때문에 나는 할 수 없습니다. 일부 표준 IO 옵션에는 이미 입력이 지속적으로 저장되어 있습니다 (예 : "프로그램이 파일에서 입력을받을 수 있음"). 엄격한 STDIN 및 STDOUT보다 유연하지만 플러드 게이트를 열지 않고 싶습니다.
표준 IO 규칙 스레드에서 나는 도전을 깨뜨리지 않는 것을 선택합니다.
원하는 경우 프로그램에서 GUI 프롬프트 와 명령 줄 프롬프트 를 통해 입력을 받을 수 있습니다.
프로그램이 화면에 표시되어 출력 될 수 있습니다. 여기에는 GUI 대화 상자가 포함됩니다
프로그램이 STDERR로 출력 될 수 있지만 여전히 실제로 오류를 발생시킬 수는 없습니다.
대체를 사용하는 경우 사용자 대화식이어야합니다. 사용자는 입력을 프로그램에 파이핑하거나 프로그램이 제공하는 프롬프트에 입력하거나 입력을 프로그램의 명령 줄 인수로 입력하는 것 외에 다른 작업을 수행 할 필요가 없습니다. 화면에 출력이 표시되거나 STDOUT 또는 STDERR로 전송되는 것을보기 위해 검색 프로그램을 실행하는 것 이외의 작업을 수행하지 않아도됩니다.
허용되는 가정 :
- 두 프로그램은 같은 디렉토리에서 실행됩니다
- 프로그램에 해당 디렉토리에 대한 읽기-쓰기 권한이 있습니다
- 생성 한 파일은 재부팅 후에도 유지됩니다 (temp dir 아님)
- 문자열의 일부가 아닌 하나의 후행 줄 바꿈이 허용됩니다. 다른 후행 공백이 없습니다.
이것은 코드 골프이며, 점수는 두 프로그램의 바이트 합계입니다.
Store
있습니까?
echo $@>x
및cat x
유효합니까?