Jeśli prowadzisz dd z tym:Jak programowo utworzyć całkowicie pusty plik rzadki na Linuksie?
dd if=/dev/zero of=sparsefile bs=1 count=0 seek=1048576
pojawiasz się uzyskać całkowicie nieprzydzielone rzadki plik (jest ext4)
[email protected]:/sp$ ls -ls sparsefile
0 -rw-rw-r-- 1 smark smark 1048576 Nov 24 16:19 sparsefile
fibmap zgadza:
[email protected]:/sp$ sudo hdparm --fibmap sparsefile
sparsefile:
filesystem blocksize 4096, begins at LBA 2048; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
bez konieczności przekopać się przez źródło dd, próbuję dowiedzieć się, jak to zrobić w C.
Próbowałem fseeking i fwriting zero bajtów, ale nic nie zrobił. Nie jestem pewien, co jeszcze spróbować, pomyślałem, że ktoś może wiedzieć, zanim poluję na dd's innards.
EDIT: w tym moim przykładzie ...
FILE *f = fopen("/sp/sparse2", "wb");
fseek(f, 1048576, SEEK_CUR);
fwrite("x", 1, 0, f);
fclose(f);
'dd' jest open source. chwyć źródło i przejrzyj je ... –
musisz pominąć część o "bez konieczności przekopywania się przez źródło dd". Pomyślałem, że ktoś może po prostu wiedzieć. – stu
Może nie rozumiem pytania, ale czy szukasz 'touch'? –