В простейших терминах розетка является псевдофайлом, который представляет сетевое соединение. Как только розетка была создана (используя правильные примитивы, и правильные параметры для идентификации другого хоста), записи на сокет превращаются в сетевые пакеты, которые отправляются, и данные, полученные из сети, могут быть прочитаны из сокета.
В одном рассмотрении розетки очень похожи на трубы: они выглядят так же, как файлы для программ, использующих их, но не приводят к чтению или записи на диск; Скорее, они позволяют общаться с другой программой (локальным в случае труб и, возможно, удаленные в случае розетки). Они также предлагают, как вы упоминаете, двунаправленное общение (так много, как пару правильно связанных труб).
Наконец, оно распространено для программ на одной машине для связи с использованием стандартных сетевых протоколов, таких как TCP; Было бы расточительно пройти весь путь к сетевому оборудованию (если есть!), вычисляющие контрольные суммы и т. Д., Просто вернуться к тому же хозяину: вот в том, где приходят сокеты доменов Unix. Это очень похоже на обычные розетки, кроме Они соединяют процессы на том же хосте, а не удаленные процессы, и не пытаются вообще использовать какие-либо сетевые ресурсы. Таким образом, они являются средством межпроцессной связи.
Как упомянуто Tripleee, в ходе истории BSD трубы были введены раньше, чем розетки, и были перенесены с использованием розетки после того, как те, которые существовали. Такая же ссылка, Дизайн и внедрение операционной системы FreeBSD , упоминает, что трубы затем вернулись к реализации без сокета для причин производительности: это, безусловно, подчеркивает тот факт, что трубы обмениваются сходствами.
-121--8030-echo $above_string | grep -oP "^([^?]*\?){2}\K[^?]*"
Изменение 2
к значению N - 1
, чтобы получить Nth String.
Это предполагает, что вы хотите nth String в этой строке . У вас есть N - 1 строки без ?
, заканчивая буквальным? ( \?
Так как это специальный символ в Perl Regex). Затем с \ K
вы утверждаете, что вы не заинтересованы в предыдущем содержимом, тем самым извлечь только следующий текст до следующего сепаратора.
Вы выполняете php-скрипт от имени пользователя root, поэтому создается .ini-файл с правами root.
Даже если файл создается с правами 'root' в качестве его владельца, другие 'php-файлы с кодом' должны иметь возможность его прочитать, так как он, по всей вероятности, будет иметь права на чтение для 'других'. Поэтому здесь Вы должны проверить разрешения директории, в которой создается .ini файл.