2010-11-28 4 views
0

나는 실제 상황과 관련이없는 질문이지만, 항상 나를 괴롭혔다.다른 스크립트를 사용하여 같은 텍스트 파일에서 읽고 쓰는 것

한 스크립트에서 한 줄의 텍스트 파일과 한 줄의 줄을 추가하고 같은 파일에서 다른 스크립트를 읽는다면 어떻게 될 수 있습니까?

나는 스크립트는이 열릴 된 순간부터 해당 파일의 버전으로 일하고있어 텍스트 파일을 열 때, 다음 편집을 고려하지 않고 있음을 알고있다. 두 스크립트가 텍스트 파일의 가능한 최신 버전 (실시간으로는 확인할 수 없음)으로 작업하기를 원합니다.

질문을하는 한 가지 방법은 다음과 같습니다.이 스크립트를 처리하는 가장 좋은 방법은 무엇입니까? 첫 번째 파일을 닫고 열어야합니까?

답변

0

I 스크립트가 텍스트 파일을 열 때 그것이 가 열려 순간부터 파일 의 버전으로 일하고 있다는 것을 알고 편집

다음과 같은 고려하지 않고이 잘못 진술 . 예를 들어 Unix에서 다음 명령을 시도하십시오.

tail -f <some file> 

그런 다음 해당 파일에 행을 추가하십시오. tail 명령이 추가됩니다. (쓰기를 할 때 주기적으로 flush라고 가정).

+0

"꼬리"또는 다른 프로그래밍 언어에 존재합니까? 명시 적으로이 작업을 실질적으로 수행 할 필요는 없으므로 특정 상황 (예 : Unix 쉘)뿐만 아니라 대부분의 상황에서 작동하는 대답을 원합니다. – Gurzo

+0

NT 커널을 기반으로하는 Windows 시스템은 POSIX와 호환됩니다. 즉,이 버전은 유닉스'꼬리 '와 같은 명령을 준수해야합니다. – Thevs

0

한 가지 문제는 다른 프로세스가 액세스하려고 할 때 한 프로세스에서 잠기는 것입니다. 이것을 피하려면 열어야하고, 전체 파일을 읽거나 (또는 ​​새 행을 써야합니다) 즉시 닫아야합니다.

오픈 주위에서 오류 처리를 추가 할 수 있습니다. 잠긴 파일이 잠겨있어 실패하면 잠시 후에 다시 시도 할 수 있습니다.

0

tail 명령을 사용하면 원하는대로 할 수 있습니다. 그렇지 않으면 한 스크립트에서 열고 편집하고 저장하고 닫아야하며 다른 스크립트를 열고 읽거나 닫는 등의 작업을 수행해야합니다. 스크립트는 순서가 필요합니다

관련 문제