2012-09-15 4 views
3

ocaml에서 파일 크기를 N으로 자르는 방법은 무엇입니까?ocaml에서 파일 잘라 내기

Pervasive에서 기능이 표시되지 않습니다. 가장 가까운 것은 "open_trunc"플래그입니다. 나는 그것이 무엇을하는지 잘 모릅니다.

답변

3

, 당신은 "주어진 크기로 명명 된 파일을 runcates"

val Unix.truncate : string -> int -> unit 

를 사용할 수 있습니다. 그러나이 기능은 Windows 버전의 OCaml에서 구현되지 않습니다 (또는 더 정확하게는 에뮬레이트되지 않습니다). 당신이 Windows에서이고 그것을 모방하려는 경우

, 당신은

val really_input : in_channel -> string -> int -> int -> unit 

에 관심이있을 수있다 " really_input ic buf pos len 문자 번호 pos에서 시작, 문자열 buf에 저장, 채널 ic에서 len 문자를 읽습니다. 올리기 len 문자가 읽히기 전에 파일 끝에 도달하면 End_of_file poslenbuf의 유효한 하위 문자열을 지정하지 않으면 발생합니다.

2

나는 맞는 것 같아. open_trunc - 쓰기 위해 명명 된 파일을 열고 해당 파일에서 파일 시작 부분에 위치하는 새 출력 채널을 반환합니다. 파일이 이미 존재하면 길이가 0으로 절단됩니다. 이미 존재하지 않으면 생성됩니다. 파일을 열 수없는 경우 Sys_error을 발생시킵니다.

이 링크 also을 참조하십시오.

2

Pervasives의 OS 기능은 표준 C에서 할 수있는 것과 대략적으로 일치합니다. 표준 C에서 지정된 길이로 파일을 잘라내는 기능은 없습니다. 파일을 열 때 파일을 자르면됩니다. 그것 (Open_trunc 깃발을 통해 노출). 유닉스/POSIX (truncate)에 하나가 있으므로 truncate 함수 (또는 Unix/POSIX 다음에 다시 열린 파일에 대해 ftruncate)가있는 Unix module에서 찾으십시오. 유닉스에서 경우