시스템 호출을 통해 sed를 사용하여 매개 변수 파일의 단일 값을 현재 편집하는 C 프로그램이 있습니다. C 파일 라이브러리를 사용하여이 값을 편집하는 프로그램을 변경하고 싶습니다. 그러나이 작업을 수행하는 방법을 알고있는 유일한 방법은 전체 파일을 읽고 값을 변경하고 파일을 다시 쓰는 것입니다. 이 작업을 수행하는보다 효율적인 방법이 있습니까? 이 프로그램은 임베디드 장치에서 사용하기위한 것이므로 가능한 가장 효율적인 솔루션을 사용하고자합니다.C에서 파일의 단일 값을 효율적으로 편집
0
A
답변
1
파일 작업은 실제로 배열의 삽입과 삭제가 불가능하다는 점에서 배열 작업과 같습니다. 삽입 및 삭제하려면 나머지 파일/배열을 이동 (복사)해야합니다. 요소를 바꿀 수만 있습니다 (읽기 및 쓰기 용 파일을 열고 seek
사용).
특히 작은 파일의 경우 전체 파일을 읽고 쓰는 것이 매우 효율적입니다. 메모리 사용량이 문제가되지 않는다면 그것은 내가 취할 접근법입니다.
다른 솔루션은 특정 상황에서 더 나을 수도 있지만 설명하는 방법이 일반적으로 가장 좋습니다.
파일을 열고 커서를 해당 위치로 이동 한 후 변경하고 저장하십시오. 그것은 실제로는 전체 파일을로드하지 않는다는 점을 제외하면 sed와 같은 방식으로 작동합니다. – texasbruce
예, 파일을 열어서 찾기를 사용하여 값에 자신을 배치 한 다음 새 값을 쓰십시오. – Fredrik
... 새 데이터가 이전 데이터와 길이가 같지 않은 경우 ...? –