2016-12-29 1 views
0

파일 설명자가 있습니다. 이제 워드 프로세서 교체 모드에서와 같이 원본 데이터의 n 바이트를 대체하여 해당 파일에 n 바이트를 쓰고 싶습니다 (전체 파일 크기가 변경되지 않도록). 이를 달성하기위한 편리한 방법은 무엇입니까?동일한 길이의 원래 데이터를 대체하는 fd에 쓰는 방법은 무엇입니까?

+2

읽기/쓰기 모드에서 파일을 열려면'open'을, 읽기 후에는 파일 포인터를 되감 으려고 'seek'하고,'read'와'write' 호출을보십시오. –

답변

1

fd에 단지 write. 이전에 올바른 위치 인 read 또는 lseek 또는 lseek64이 올바른 위치로 바로 이동해야 할 수 있습니다.

fd가 쓰기 가능해야합니다. 이를 확인하려면 open을 확인해야합니다. openO_WRONLY 또는 O_RDWR과 같이 호출해야하지만 O_TRUNC 없이는 파일을 길이가 0으로 절단해야합니다.

참고 : write은 파일 끝에 쓰는 경우 파일 크기 만 변경 (증가)합니다. 파일에 바로 쓰는 경우 크기가 변경되지 않습니다.

관련 문제