При установке переменных среды на одном экране (скажите, что рабочий удар), и затем открывают новый экран, это - отдельный процесс удара и поэтому уже не возьмет среду на отдельном рабочая оболочка удара. Быстрое исправление для обхождения проблемы было бы:
env TERMCAP= env | sed -r 's/^(\w+)=(.*)$/\1="\2"/' > env.sh
затем, после того как у Вас есть Ctrlac для получения новой оболочки, Вы можете затем
source env.sh
Это - hacky, и я использую env TERMCAP= env
потому что переменная среды TERMCAP является мультилинией и делает sed
намного более сложный. Это не симпатично, но это работает :)
Можно хотеть изменить его, чтобы сделать:
env TERMCAP= env | sed -r 's/^(\w+)=(.*)$/export \1="\2"/' > env.sh
Таким образом, переменные также экспортируются.
Если вы используете 32-битные Windows 7 на 64-битном процессоре, то VirtualBox может запустить 64-битный гость с несколькими предостережениями:
VirtualBox поддерживает 64-битные гостевые операционные системы, даже в 32-разрядных операционных системах Host, при условии соблюдения следующих условий:
Вам нужен 64-битный процессор с поддержкой виртуализации оборудования (см. Раздел 10.3, «Художественное обеспечение и виртуализация программного обеспечения»).
Вы должны включить аппаратное виртуализацию для конкретной виртуальной машины, для которой вы хотите 64-битная поддержка; Виртуализация программного обеспечения не поддерживается для 64-битных VMS.
Если вы хотите использовать 64-битный гостевой поддержку на 32-битной операционной системе хоста, вы также должны выбрать 64-битную операционную систему для конкретной виртуальной машины. Поскольку поддержка 64 бит на 32-битных хостах помещает дополнительные накладные расходы, VirtualBox позволяет только этой поддержке при явном запросе.
Чтобы проверить, поддерживает ли ваш процессор Virtualization от Windows Hosts, используйте инструмент виртуализации Microsoft Adverware-Assistization .
Чтобы проверить, поддерживает ли ваш процессор виртуализацию от хостов Linux, запустите:
egrep '(vmx|svm)' /proc/cpuinfo
Вышеуказанные проверки для либо VMX
или SVM
в / etc / cpuinfo
Отказ Если он тоже находит, он печатает все флаги. Однако, если он не найдет их, это не будет напечатано ничего. Последний означает, что у вас нет виртуализации оборудования.
Из CentOS wiki:
CentOS стремится быть на 100% бинарной совместимой со своим исходным кодом, Red Hat Enterprise Linux (RHEL)
С сайта Red Hat:
Red Hat Enterprise Linux 7 будет предоставлять только 64-битные ISO, таким образом разрешая только 64-битная операционная среда. Тем не менее, 32-битная поддерживается в следующем виде способами:
- RHEL 7 будет продолжать предоставлять выбранные библиотеки как в 32-битных, так и в 64-битный, позволяющий 32-битным приложениям запускаться в 64-битной RHEL 7 OS окружение. Эта функциональность также существует для RHEL 5 и 6, как описано в документах статья о знаниях: Как установить 32-битные пакеты на 64-битную систему. система
- RHEL 7 будет продолжать поддерживать мультилибровую цепь инструментов, позволяя приложения, которые будут скомпилированы как для 32-битных, так и для 64-битных.
- RHEL 7 может размещать, используя технологию виртуализации KVM, как 32-битные, так и 64-битные виртуальные гостевые экземпляры RHEL 5 и RHEL 6
Хотя RHEL 7 не будет изначально поддерживать 32-битное аппаратное обеспечение, сертифицированное аппаратное обеспечение можно искать в сертифицированной базе данных аппаратного обеспечения .
Это можно сделать с помощью одиночного sed
:
sed 's/\(.*\)-/\1 /'
или, используя расширенное регулярное выражение:
sed -r 's/(.*)-/\1 /'
точка, что sed
очень жадный, поэтому соответствует как можно большему количеству символов до -
, включая другие -
.
$ echo 'swp-RedHat-Linux-OS-5.5.0.0-03' | sed 's/\(.*\)-/\1 /'
swp-RedHat-Linux-OS-5.5.0.0 03
-121--14343- По соглашению мы проверяем переменную
errno
только при возникновении ошибки (например, при возврате некоторых функций с помощью -1).Вопрос 1: Какое значение
errno
используется для 0 перед запуском программы?
Действительно, мы должны проверять errno
только в случае, когда произошла ошибка. Это связано с тем, что если ошибка отсутствует, то возможно, что errno
будет содержать ненулевое значение (например, если ошибка произошла во время выполнения вызова библиотеки, но ошибка была восстановлена).
Поэтому установка errno
на 0 перед «запуском программы» не является необходимой, и я не стал бы следовать этому совету.
Более того, я прочитал, что лучше сохранить номер ошибки в локальной переменной, а затем проверить его
Да! Ваше наблюдение о том, что printf ()
может засорить errno
, является правильным. Если его значение необходимо сохранить, его следует скопировать в локальную переменную как можно скорее после возникновения ошибки.
Вопрос 2: Применяется ли приведенное выше утверждение к perror () и strerror (), поскольку они также являются системными вызовами, и существует вероятность того, что ошибка произошла и с ними.
perror ()
, вероятно, не вызывает ничего, что изменяет errno
, но если это так, то необходимо быть осторожным, чтобы скопировать значение errno
, прежде чем это произойдет. Уверен, вы можете предположить, что perror ()
правильно работает в вашей системе!
strerror ()
не должен беспокоиться об этом, так как он принимает номер ошибки в качестве параметра, так что, даже если для clobber errno
предыдущее значение уже сохранено.
При расширенном программировании в среде UNIX Ричарда Стивенса (Richard Stevens) мы должны проверить значение
errno
, только если возвращаемое значение функции указывает на то, что произошла ошибка. Я не понимаю, почему?
Потому что системные вызовы и вызовы библиотеки, которые устанавливают errno
при сбое, не обязаны устанавливать его на успех, поэтому он сохраняет любое значение, которое он имел ранее.
Кажется, что существует другой дистрибутив на основе RHEL под названием Springdale, и он имеет как 64-разрядную, так и 32-разрядную версии: http://springdale.math.ias.edu/
Возьмите его с зерном соли, хотя, я не пробовал его и не знаю, каковы различия между этим и CentOS (если таковые есть).