문제

저는 무엇보다도 0으로 채워진 파일을 저장해야하는 코드를 작업 중입니다.10MB에서 1GB까지의 빈 파일을 생성 할 수 있습니다.

다음 Unix 명령과 유사해야합니다. 라코 디스

작은 크기로이 작업을 수행 할 수 있습니다. 라코 디스

하지만 더 큰 값 (예 : 1024 * 1024 * 10)을 시도하면 충돌이 발생합니다. 그래서 노력했습니다 : 라코 디스

빈 파일을 생성하지만 파일 크기가 0이므로 좋지 않습니다.0이 아니어야합니다.

성공하지 못한 답을 찾으려고 몇 시간을 보냈습니다.Obj-C에서 이것을하고 싶지만 C는 내가 미치기 전에 옵션이기도합니다.

누군가 빛을주세요!

미리 감사합니다!

-수정-

모두에게 감사하지만 한 가지 더 : 메모리에 모든 것을 할당하지 않고도 쓸 수 있습니까?

도움이 되었습니까?

해결책

dd를 사용할 수 있습니다.이렇게하면 메모리 나 주소 공간에 대한 걱정없이 10GB 등을 쓸 수 있습니다. 라코 디스

장점은 고급 사용자가 문제가 발생하면 유전자 코드 코드를 죽일 수 있다는 것입니다.

샌드 박싱 정보 : 샌드 박스에서도 잘 작동 할 것이라고 생각하지만 확실히 알고 싶습니다.설명서 ( 링크 )에 따르면 하위 프로세스"단순히 그것을 만든 프로세스의 샌드 박스를 상속합니다."이것이 바로 Unix에서 작동 할 것으로 기대하는 방식입니다.

Apple에서 OS X가 SUSv3를 준수한다고 주장하므로 dd가 계속 유지 될 것입니다.

다른 팁

POSIX API에서 비교적 간단합니다. 라코 디스

오프셋은 off_t 유형의 정수를 사용하여 지정되며, 이는 특정 요구 사항에 충분하지 않을 수 있습니다.64 비트 파일 인터페이스가 충분히 크지 않은 경우 시스템 API 문서를 확인하세요.

이 접근 방식의 가장 좋은 점은 프로그램 메모리의 몇 바이트 만 필요하다는 것입니다. 파일을 쓰는 데 10GB의 아무것도 할당하지 않아도됩니다.

더 간단한 또 다른 접근 방식은 truncate(2) 시스템 호출을 사용하는 것입니다.모든 플랫폼이 truncate(2)로 파일 확장을 지원하는 것은 아니지만 지원하는 플랫폼의 경우 한 번의 호출 입니다.

다음 코드 시도 : 라코 디스

이것을 시도해 볼 수도 있고, 메모리를 덜 차지하며 1GB 파일로 작동합니다. 라코 디스

모두 감사합니다.나는 해결책을 찾았습니다.이것은 기본적으로 코코아 앱에 넣을 코드의 스케치입니다.

잘 작동하고 크기 변수에 대한 몇 가지 예방 조치 만 있으면 충분하다고 생각합니다. 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top