2013-11-22 1 views
0

정확한 크기의 메가 바이트 (즉, 정확하게 10MB, 50MB, 100 MB, 나는 얼마나 커야할지 모르겠습니다).파일을 여러 번 복사하여 연속적으로 더 큰 파일을 만들려면 어떻게해야합니까?

파일의 크기가 모두 1이나 0이 아니기 때문에 약 10MB의 텍스트 파일이 필요하므로 파일을 만드는 데 필요한만큼 텍스트를 복사하고 싶습니다.

read() 및 write() 대신 sendfile을 사용하는 방법에 대한 조언을 보았습니다. 필자는 10MB 파일에서 1MB 파일을 만들 수있는 무언가를 썼지 만, EOF를 기록한 후에는 어떻게하면 10MB 이상의 파일을 만들 수 있는지 궁금합니다.

이 리눅스 컴퓨터에서 궁극적으로 사용됩니다하지만 C. 당신이 이미 완료 및 복사 처음부터 파일을 탐색하는 경우

+2

또한 사용할 수'와 dd' 명령'=는/dev/urandom' 또는 경우 _not 모두 1 또는 zeros_를 포함하는 파일을 만듭니다. – Etherealone

+0

어쩌면 특정 메가 바이트 수의 임의 파일을 만드는 것이 더 쉽습니다. 감사합니다. – punstress

답변

1

, 모두 Cygwin에서 (윈도우)에서 지금 쓰고 있어요 당신 ' 실종은 다시 처음으로 돌아갈 수있는 방법입니다.

당신이 EOF 충돌

, rewind()를 사용

rewind(file); 

file이 파일의 설명이다. rewind()fseek()의 특별한 경우이다 :

fseek(file, 0, SEEK_SET); // Same effect 
+0

"rewind()보다 fseek()를 사용하는 이유는 무엇입니까?" - http://stackoverflow.com/questions/11839025/fseek-vs-rewind –

+0

sendfile을 사용하여 잠시 기다려주세요. 그냥 전화를 걸어서 복사합니다. 나는 EOF를 확인하지 않습니다 ... – punstress

+0

'fseek()' 'sendfile()'호출 사이에? – slezica

관련 문제