기본 설정 파일은 어떻게 손상됩니까?


10

몇 가지 다른 문제 해결 기사와 Q & A에서 범인이 응용 프로그램이나 프로세스의 손상된 환경 설정 파일 인 곳을 읽었습니다. 일반적으로 해결책은 잘못된 기본 설정 파일을 삭제하고 잘못 작동하는 소프트웨어를 다시 시작할 때 새로운 기본 기본 설정 파일이 생성되도록하는 것입니다.

환경 설정 파일은 어떻게 손상됩니까? 이것은 단순히 낮은 수준의 읽기 / 쓰기 오류입니까, 아니면 어떤 경우에는 더 높은 수준의 오류가 발생합니까? XML이 잘못되었거나 철자가 틀린 것입니까?

plutil파일에 구문 오류가 있는지 말할 수 있다고 생각 하지만 오류는 어떻게 발생 했습니까? 이 손상된 파일에 대한 일반적인 소스는 확실하지 않습니다. 감사.

답변:


6

많은 것들이 원인 일 수 있지만 가장 일반적인 원인은 파일을 쓰는 위치이며 파일 쓰기가 끝나기 전에 응용 프로그램이 종료된다고 생각합니다. 당시의 성공적인 쓰기에는 시스템 오버 헤드가 너무 커서 발생할 수 있습니다.

하드 디스크 또는 메모리의 하드웨어 오류도 데이터 오류를 유발할 수 있지만, 현재로서는 이것이 가장 작은 문제라고 생각합니다.


4
나는 회의적입니다. 그럴 경우,이 명백한 버그를 피하기 위해 문자 그대로 2 개의 추가 단어가 필요하기 때문에 앱이 제대로 작성되지 않았어야합니다. plist를 작성하기위한 Apple의 샘플 코드는이 방법을 사용합니다 -writeToFile:atomically:YES( "데이터는 백업 파일에 기록 된 다음 오류가 없다고 가정하면 백업 파일 이름이 지정된 이름으로 바" "). POSIX rename()기능은 파일이 "작업 도중에 시스템이 충돌하더라도"파일이 존재하도록 보장합니다.
Ken

3

나는 거의 모든 경우에 plist 파일에 구문 상 문제가 없다는 것을 확신합니다. plist 데이터를로드하고 저장하기위한 Apple의 기능은 많은 관심과 사용을받습니다. 지금까지 거의 모든 버그가 발견되어 수정되었습니다.

(plists는 드래그 앤 드롭 및 클립 보드, 앱 실행을위한 샌드 박스 권한, 모든 앱의 사용자 인터페이스 및 Finder에 표시 할 아이콘과 같은 모든 종류의 작업에 사용됩니다. plist-writing 코드에 버그가 있었는데, 방금 일부 앱의 환경 설정 파일을 망쳐 놓았지만 다른 것들은 아닙니다!)

앱의 환경 설정 파일 (plist)은 단순히 메모리 내 일부 데이터 구조를 디스크에 저장합니다. 따라서 앱에 무언가 잘못 설정되는 버그가 있으면 저장됩니다.

앱이 오작동하기 시작하면 앱을 종료하고 다시 시작할 수 있습니다. 이로 인해 많은 부분이 재설정되고 문제가 해결 될 수 있습니다. 환경 설정 파일은 디스크에서 다시로드되므로 응용 프로그램의 영향을받는 부분이 지속적 환경 설정으로 저장된 경우 앱을 다시 시작해도 아무런 영향이 없습니다. 잘못된 값은 다시로드됩니다. 환경 설정 파일을 삭제하면 도움이 될 수 있습니다. 앱을 다시 시작하는 것과 같지만 저장 한 것입니다.

프로그래머가 앱의 데이터가 정확하다고 가정하기 때문에 이런 일이 발생할 수 있습니다. 사용자가 표준 색상환 컨트롤을 클릭해야만 색상을 선택할 수 있다면 사용하기 전에 색상이 올바른지 확인하기 위해 추가 작업을 수행하지 않을 수 있습니다. (비교, 사파리와 같은 응용 프로그램은 수행 때문에로드 및 실행 파일 바로 인터넷으로 모든 것을 확인하는 추가 작업을.)

단점은 거의 항상 정확하며 내부 값이 정확하다고 가정하면 훨씬 쉽습니다. 단점은 사용자가 완전히 예기치 않은 일을 한 것처럼 나쁜 값이 몰래 빠져 나가면 모든 것이 재설정 될 때까지 문제가 발생할 수 있다는 것입니다.


그 흥미 롭군요. 문제는 일반적으로 응용 프로그램에 따라 다르며 plist의 읽기 / 쓰기 또는 일반적인 처리가 아니라 잘못된 값을 설정하고 나중에 사용하기 전에 확인할 수없는 버그 또는 감독과 관련이 있다고 말합니다. Dock ( apple.stackexchange.com/questions/33950/… ) 과 같은 일반적인 (공식적인) 무언가 에 문제가 있지만, 아마도 예외이며 실제로는 읽기 / 쓰기 오류 일지라도 여전히 이상합니다.
wxs

워커 : 누군가이 손상된 Dock plist 파일 중 하나를 가지고 있다면 쉽게 확인할 수 있습니다. 내 돈은 여전히 ​​plist 코드가 아닌 앱 (시스템 환경 설정 또는 Dock)의 버그에 있습니다.
Ken

1

기술적으로 어려움을 겪고있는 노인으로서, iTunes Preference File이 손상되어 iTunes를 열 때마다 라이센스 계약이 제기되는 것을 발견했습니다. 또한 모든 기본 설정을 재설정해야했습니다. 이 문제가 발생하기 직전에 위의 답변이 정확하다고 생각합니다. 내 컴퓨터를 강제로 종료하고 (해당 지역의 전기 문제) 여러 번 재부팅 / 반 재부팅해야했습니다. 지침 / 쓰기가 완료되기 전에 응용 프로그램이 종료되었습니다. 그러나 새로운 iTunes 환경 설정 파일을 생성하는 수정 프로그램은 온라인으로 표시되어 매우 쉽습니다. 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.