Se si esegue dd con questo:Come si crea un file sparse completamente vuoto su Linux?
dd if=/dev/zero of=sparsefile bs=1 count=0 seek=1048576
appari per ottenere un file sparse completamente non allocato (questo è ext4)
[email protected]:/sp$ ls -ls sparsefile
0 -rw-rw-r-- 1 smark smark 1048576 Nov 24 16:19 sparsefile
fibmap è d'accordo:
[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
Senza dover scavare attraverso la fonte di dd, sto cercando di capire come farlo in C.
Ho provato a guardare e scrivere zero byte, ma non ha fatto nulla. Non so cos'altro provare, ho pensato che qualcuno potrebbe saperlo prima di dare la caccia alle interiora di dd.
EDIT: tra cui il mio esempio ...
FILE *f = fopen("/sp/sparse2", "wb");
fseek(f, 1048576, SEEK_CUR);
fwrite("x", 1, 0, f);
fclose(f);
'dd' è open source. prendi la fonte e guarda attraverso di essa ... –
devi aver perso la parte su "senza dover scavare attraverso la fonte di dd". Ho pensato che qualcuno potrebbe solo sapere. – stu
Forse non capisco la domanda ma stai cercando 'touch'? –