다시 오신 걸 환영해요
네 이번 강의에서는 파일 위치 지정과 파일의 위치를
변경하는 기능에 관해 얘기해 볼게요
네 많은 응용 프로그램에서 여러분은 순차적 순서가 아닌 파일에서 데이터에
액세스할 수 있어야 합니다
순차적 순서는 초기에 시작해서 바이트
단위로 진행하는 방식이죠
네 항상 유용하진 않아요 파일 중간에 가서 데이터를
잡을 수도 있고 파일 끝에 가서 데이터를 잡을 수도 있으니까요
응용 프로그램에 달렸죠
처음부터 끝까지 가는 건 좋지 않아요
무작위로 데이터에 접근할 수 있는 다양한
기능이 있어요
파일 위치 선정에는 두 가지 측면이 있어요
파일을 통해 여러분의 위치를 파악하는 것과 파일을 통해 특정
지점으로 이동하는 거죠
네 파일을 얘기할 때 그 두 가지를 알아야 합니다
파일의 위치와 그것이 실제로 가리키는 것이 무엇인지를요
파일 그 자체에 있는 거죠 파일에서 다른 곳으로 이동하고
싶은지 여부도요
네 랜덤한 위치에서 접근이 가능하고요 파일을 열든
안 열든 파트너를 옮길 수 있어요
파일을 열지 않아도 위치를 바꿀
수 있어요
어디부터 얘기할 건지 먼저 알아보죠
파일 1의 위치를 알 수 있는 두 가지 함수가 있어요
ftel이라고 하죠 fgetpos, fget 위치요
Ftell의 실제 기능은 꽤 간단해요
돌아가서 파일 포인터를 가져가세요
네 이 함수는 파일 포인터를 인수로 받아들이고
긴 정수 값을 반환합니다 파일에서 문자 위치를 지정해주죠
위치를 알려줄 것입니다
네 변수를 생성해 사용할 수 있어요 이 경우엔 fpos죠 반환될 걸 입력하고
그 파일 포인터를 넘겨 ftel을
호출하는 거예요
네 네 f 위치 변수는 파일의 현재 위치를 가지고 있고
그 이후에는 언제든지 그 위치로 반환할 수 있습니다
fosition을 리턴할 거예요
지금 가리키고 있는 현재 지점의 위치를 알
수 있는 방법이죠
파일의 시작 부분에서 오프셋 값이 나와요
네 그럼 Ftell이요 포인터에 패스를 쓰는 건
아주 간단해요 파일의 어디에 있는지 알려 줍니다 파일의 시작부터
몇 바이트까지 기반으로 합니다
네 이 예제에선 fp라는 파일 포인터를 만들고 길이라는
정수를 만듭니다
파일을 열게요 이건 읽기 전용이에요
null이 아닌 makesure를 하죠
그렇다면 오류를 반환하겠죠
꽃시크는 걱정하지 마세요
시크는 파일의 끝으로 갈 거예요
이것도 도움이 되는 기능이에요
초광속화면만 사용하고 있어요
네 네 프시크는 파일 끝으로 갈 거예요 그럼 여러분은
ftell이라고 하세요 fp 그럼 여러분이 파일 끝에 있게 될 거라고 말해주죠
링크는 파일 끝에 리턴됐어요
네 그래서 발생하는 일은 길이에 근거해
파일의 전체 크기를 리턴하는 거죠 왜냐하면 포인터를 끝으로 이동시킨
다음 어디냐고 물었거든요 네가 끝에 있다고 했으니까
끝을 반환해
마지막은 마지막으로 읽었을 때의 바이츠 개수고요
멋진 IDE 코드 블록 내부를 살펴보죠
여기 코딩 예가 있어요 파일 포인터를 만드는 거죠
그걸 null로 설정하면 메이크셔가 null이 아니죠
문을 열려고 해요
그런 다음 프시크를 해요 파일 포인터를 변경하는 거죠
Ftel이 우리가 가리키는 곳을 알려줄 거예요
결국 Tend를 가리키고 끝에 가서는 어떤
바이트든 될 거예요
이걸 실행하면 24바이트가 표시된다는 걸 알 수 있어요
즉 파일의 끝에 있다는 뜻입니다 파일은 작고 24 바이트밖에
안 되니까요
네 보통 글을 쓰거나 책을 읽은 후에 ftel을 사용하죠
아니면 어디론가 이사한 프시크에서 한 후에요
네 파일 포인터를 이용해 Ftel을 호출하는 건 아주 간단해요
그럼 렌이 위치를 알려주죠
fgetposition이나 fgetpos 기능도 사용할 수 있어요
이건 두 번째 기능 프로비딩 정보입니다 현재 파일 위치에
관한 거죠
Ftel보다 좀 더 복잡해요
이건 정수를 반환해요
파일 포인터를 취하고 italso는 f 자세 t 타입을 취하죠
첫 번째 매개 변수 is that 파일 포인터로 어떤 파일을
읽어야 할지 알 수 있죠
두 번째 매개 변수는 표준화에서 정의되는 포인터예요 H요
F포지션T 타입은 한 줄 안에 있는 모든 포지션을 견인할 수 있어요
fget 위치 함수는 위치 설정 함수가 fset
위치일 때 사용되도록 디자인됐어요
fset 위치를 사용하고 fget 위치도 함께
사용하죠
네 fget 위치 함수는 현재 위치와 파일과 위치에
대한 상태 정보를 저장하고 0을 반환합니다 작전이
성공하면 0이 아닌 정수 값을 반환합니다 실패할 경우에 대비해서요
그래서 수집할 수 있는 s 자세 유형을 만들 수 있죠
여기선 여기라고 하죠
fget 자세를 호출하죠
파일 포인터에서 지정하고 f 위치 유형에서도 지정하죠
앰퍼샌드를 지나가야 해요 그건 포인터가 아니거든요
현재 파일의 위치는 hello라는 변수
혹은 여기에 있죠
네 그래서 형식 f, 위치 t라는 변수를 선언해야 합니다 매개
변수에서 전달하는 것이니까요 두 번째 매개 변수는
네 네 타입 f의 포인터를 지정할 수 있어요 위치 t 별이오 위치
데이터를 저장하는 데 관련된 기억이 없을 테니까요
예를 들어보죠 이게 더 말이 될 거예요
네 이 경우엔 파일 포인터를 생성하고 F 소유 T 형식의 위치를 생성합니다
Open을 호출하고 fget 위치를 호출하죠
그리고 최종 위치에서 파일포인터를 전달하죠
거기서 그 위치를 복구하는 거죠
위치를 확인할 거예요
fs를 입력하면 이동하는 곳마다 데이터를
작성하는 거죠
다시 F Get-Stage가 어디서 쓰거나 읽고 싶은지
알려주죠
중간 어디쯤이에요
처음도 끝도 아니에요
움직이네요
네 보통은 상대를 찾거나 다른 기술로 움직이죠
위치를 잡으면 위치를 알 수 있어요
Fget 위치요 Ftell은 여러분이 가리키는 곳을 정확히
알려줍니다 그 말은 다른 곳으로 이동해 읽을 수 있다는
거죠
지금 이 시점까지 무방비 상태로 설정하면서 현재 위치를
파악하고 있어요
네 네 뭔가 설정하지 않으면 현재 상황을 읽을
수 없어요 읽고 쓰기를 했어요
그럼 토프텔을 보완해서 팡씨크도 있군요
시크가 토모베 자리를 마련해 줄 거예요
int를 반환하죠
파일 포인터, longfset, 정수를 반환하죠
첫 번째 매개 변수는 재배치 중인 파일의 포인터예요
두 번째와 세 번째 매개 변수는 파일에서 어디로 갈지를 정의하죠
두 번째 매개 변수는 aoffset입니다 세 번째
매개 변수가 지정해준 참조점이죠
참조점은 미리 정의된 이름으로 지정된 세 가지
값 중 하나가 될 수 있어요
집합과 흐름을 좇고 종말을 추구하죠
수색은 파일의 구성을 결정하죠
Seek cur는 파일의 현재 소재를 정의하고 Seek end는
파일의 끝을 정의하죠
텍스트 모드 파일에선 두 번째 인수는 ftel이 반환한
값이어야 해요
퍄니칸트 Ftel은 함께 사용한다는 걸 아셔야 해요
텍스트모드 파일의 세 번째 인수는 찾아요 집합이어야 하죠
네 텍스트 파일은 프시크와 관련된 모든 작업은 파일 시작을 참조하며
실행된다 바이너리 파일은 우리가 많이 배우진 않았지만
하지만 바이너리 파일의 toffset 인수는 상대
바이트 카운트에요.
네 따라서 참조점이 CURR로 지정됐을 때 오프셋에
양극 또는 음극을 공급할 수 있습니다
예제를 보죠
이 예제에서도 역시 fput을 하죠
우리 파일에 데이터를 써서 프시크를 사용하죠
프시크가 당신을 옮길 거예요
여기요 7 바이트를 이동할 수 있게 해주죠 어디로 이동하고
싶다면 SEC SET을 사용합니다 시작부터 7 바이트입니다
파일을 변경하는 것에서 7 바이트
이동할 수 있어요
7바이트 이후에는 실제로 데이터를 쓸 수 있어요
Ftell을 사용하면 7바이트 후에 현재 위치를
알 수 있죠
거기 있는 정보로 토스트리브를 할 수 있어요
네 다시 한 번 다시 말하지만 ⇲ 어디서
읽고 싶은지 명시하는 거죠
네 시막이 위치를 옮길 거예요 여러분의 위치를
알려 줄 것입니다
좌표 위치도 팡씨크 같아요
하지만 좌표는 좀 더 복잡해요
fset 위치로 갈 거예요
fset get-get좌표도 fset좌표와 비슷하죠
fset 위치와 함께 첫 번째 매개 변수는 열기 파일의
포인터로 확인되죠
두 번째 매개 변수는 f좌표 t 타입의 아포인터예요
주소는 fget 포지션을 통제함으로써
입수한 거예요
fset 위치에 파일포인터와 실제 변수가 있어요
fget 위치에 대한 호출로 이전에 설정된 변수예요
Fset과 fget를 함께 사용하죠
f셋 위치는 에러에 대한 non-0 값을 반환합니다 혹은 성공했을
때 0 값을 반환하죠
이 함수는 fget 위치에서 반환되는 값으로
작업하도록 설계됐어요
네 파일에서 어떤 번호를 얻을 때만 사용할 수 있어요 파일에서 전에 있던 장소를
얻기 위해서요
프시크는 적절한 오프셋만 지정해도 어떤 입력도
가능해요
여기 haveour fition t 유형의 자세가 있네요.
파일을 열고 fget 포지션을 호출해요
네 fget 위치에서 어디서 포인터를 이동할지
지정할 수 있어요 파일을 읽거나 작성할 위치를요
그런 다음 뿡뿡이에게 옮겼어요
네 fset 위치는 우리가 쓰고자 하는 구체적인 위치를 설정하고
우리가 원하는 어디서든 쓸 수 있습니다.
이 모든 함수들로 여러분은 실제로 어디를 가리키고 있는지 보고
싶어하죠
대결을 하게 되면 훨씬 더 쉽게 오해할 거예요
네 읽고 쓸 때는 늘 어딘가로 이동하고 싶죠 글을 쓸 수 있는
지점으로요
처음부터 끝까지 쓰는 건 좋지 않아요
그래서 이 함수들은 아주 유용합니다 파일 어디에서든 원하는
위치로 이동할 수 있죠
고마워요