Это действительно зависит от malloc
реализация. Это может предварительно выделить больший непрерывный блок памяти и затем сделать некоторое волшебство сверху его - например, выделить меньшие блоки памяти от различных частей большого блока в зависимости от требуемых размеров. Такой больший блок может, конечно, быть выделен через mmap
.
Можно проверить, например, источник jemalloc, чтобы понять, как это может работать.
Я боролся с той же проблемой. Для работы поиска NetBIOS отредактируйте строку /etc/nsswitch.conf
и добавьте «wins» в строку «hosts:».
Пример:
hosts: files dns wins
Затем отредактируйте файл /etc/samba/smb.conf
и добавьте/отредактируйте строку wins server =
, чтобы добавить WINS-сервер. К вашему сведению, Samba не будет работать как сервер и клиент, поэтому, если у вас есть wins support = yes
, вам потребуется отключить его или настроить для работы с OpenConnect.
Я поместил ваши примерные данные в файл ./file
как
cat >file <<\IN
# all of your example
IN
Затем я сделал следующее:
sed -n 's|\([^ ]*\) *{.*|/\1 {/,/}/w file.\1.par|p' file |
sed -e 's/ */ /g;s/^ //;s/ $//;/./!d;/{/!y/ /\n/' -f - file
Который использует один процесс sed
для очистки данных в инфиле и редактирования его instream в работоспособный сценарий sed
для второго процесса sed
Сценарий, который выполняется, выглядит как...
/1_01 {/,/}/w file.1_01.par
/1_02 {/,/}/w file.1_02.par
/1_03 {/,/}/w file.1_03.par
/1_04 {/,/}/w file.1_04.par
... но он выполняется только после второго sed
для каждой строки в файле ...
... -e 's/ */ /g;s/^ //;s/ $//;/./!d;/{/!y/ /\n/' ...
... который сначала сжимает любую последовательность мест в один космос, удаляет ведущий или конечный космос, если они остаются, удаляет пустые строки полностью из вывода и в последний раз преобразует все места в символ \n
ewline для каждой строки, который не соответствует {
.
Поэтому для каждого номера строки, который соответствует (заголовку раздела) * {. *
второй sed
w
, обнуляет его и все последующие строки до следующего }
включительно при вводе в файл . (заголовок раздела)
, в то время как исходный инфиль остается неизменным.
После бега я сделал это...
cat <./file.1_01.par
... и...
1_01 { ; quite good spirals
reset=2000
type=mandel
passes=1
corners=-0.6014129278/-0.5990935452/0.427747516/0.429487053
params=0/0
float=y
maxiter=1000
inside=0
outside=15
distest=1/10/320/200
}
Чтобы запустить его, просто скопируйте/вставьте эти два ...
строки в терминале и замените имя файла на соответствующее.
У меня также был переход по ссылке в вашем вопросе...
sed -n 's|.\([^ ]*\) {.*|/\1 {/,/^}$/w \1.par|p' <<-IN |\
sed -e 's/.//;/{/!y/ /\n/' -f - all.par
$(curl -s 'http://www.calresco.org/pic3/calres3.par' |
tr -s '\r\n ' '\n ' |tee all.par)
IN
Которые разделяют все функции .par
на свои собственные файлы и обрабатывают линейные окончания DOS:
ls -C
a46.par bugeyed.par flocks.par iconw2b.par manchaos.par swirl5.par
aciddrop.par burr.par galaxy.par juliland.par mandelzm.par trific.par
all.par complex.par highrise.par lace.par redgiant.par
angfish.par eyeeye.par iconvolc.par lavaflow.par scythe.par
Они все названы для имени функции.
cat galaxy.par
galaxy {;Chris Lucas
reset=1950
type=julia
center-mag=+0.03023290053994965/+0.26628255550711930/42.69126/1/67.5
params=-0.1582146627566066/0.6550294654497986
float=y
maxiter=30000
colors=000000GFF<28>x11z00z10<29>zx0zz0zz1<29>zzxzzzzzz<61>zV1zU0zU0zT0<\
28>z10z00z00y00<30>c00b11a11`22_22<25>FFF
}
-121--83247- Пока я не знаю, почему один сбой (плохая палка? ), обычным подозрением на различия в «идентично» созданных файловых системах, будь то ISO9660 или иначе, являются метки времени , например, для времени создания. Или случайная метка файловой системы по умолчанию .
Если вам нужны одинаковые данные на обоих, dd
хорошее изображение на другой палке и проверьте их контрольные суммы (md5sum или другие; любой сделает).
О, и предположение из названия вашего вопроса не держится. Различается не только один байт. cmp
сообщает только о том, что сначала отличается, а затем выходит.
По всей вероятности, они не отличаются только одним байтом. Это только первый разный байт. Беги CMP -L dev / sdb / dev / sdc
, чтобы переписать все различия.
Первые 512 байтов палки - это загрузочный сектор . Offset 441 (440 Если вы начнете нумерация в 0) - это местоположение подписи , которая должна уникально идентифицировать диск (для преимуществ Windows - я не помню, как видеть уход в Linux). Ожидается, что они будут отличаться. Это файлы на палочке, которые должны быть идентичными, а не на дисковые метки (или файлы »метки времени, кстати, кстати).
Убедитесь, что палка, которая вылетает, имеет правильный файл содержимого. Это может быть физически повреждено.