как конвейер влияет на точность чисел?

Solo mire lo que está haciendo ip netns exec test...en su situación, usandostrace.

Extracto:

# strace  -f ip netns exec test sleep 1 2>&1|egrep '/etc/|clone|mount|unshare'|egrep -vw '/etc/ld.so|access'
unshare(CLONE_NEWNS)                    = 0
mount("", "/", 0x55f2f4c2584f, MS_REC|MS_SLAVE, NULL) = 0
umount2("/sys", MNT_DETACH)             = 0
mount("test", "/sys", "sysfs", 0, NULL) = 0
open("/etc/netns/test", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
mount("/etc/netns/test/resolv.conf", "/etc/resolv.conf", 0x55f2f4c2584f, MS_BIND, NULL) = 0

para reproducir (parcialmente, por ejemplo, /sysno se maneja aquí )qué está haciendo ip netns exec test...:

~# ip netns id

~# head -1 /etc/resolv.conf 
# Generated by NetworkManager

~# nsenter --net=/var/run/netns/test unshare --mount sh -c 'mount --bind /etc/netns/test/resolv.conf /etc/resolv.conf; exec bash'

~# ip netns id
test
~# head -1 /etc/resolv.conf 
# For namespace test
~#

Así es.nsentersolo no es suficiente.unsharetiene que ser usado, para cambiar a un espacio de nombre de montaje recién creado (basando este nuevo en una copia del anterior )y modificarlo, y no solo usando textualmente uno existente, ya que no existe uno todavía que encaja. Eso es lo que está haciendo la llamada al sistema del mismo nombre que está diciendo strace.

0
07.06.2019, 09:04
2 ответа

Здесь у нас пять каналов, и, как видите, символы на выходе точно такие же, как символы в:

$ echo '1.23456789012345678901234567890' | cat | cat | cat | cat | cat
1.23456789012345678901234567890

Каналы передают символы без изменений . Ничто в канале не заботится о том, представляют ли символы серии число или нет. Для трубы все — просто последовательность символов.

0
28.01.2020, 03:36

Труба

cmd1 | cmd2

получает стандартный вывод команды cmd1 и подает его без изменений на стандартный ввод команды cmd2. Хотя он применяет буферизацию (и, следовательно, об этом следует помнить, если вы имеете дело с большим вводом-выводом и вам нужны результаты в реальном времени ), он не выполняет с ним никаких математических операций и не повлияет на точность чисел. в любом случае.

0
28.01.2020, 03:36

Теги

Похожие вопросы