晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/share/doc/libpipeline/ |
Upload File : |
libpipeline, a pipeline manipulation library
============================================
http://libpipeline.nongnu.org/
libpipeline is a C library for setting up and running pipelines of
processes, without needing to involve shell command-line parsing which is
often error-prone and insecure. This alleviates programmers of the need to
laboriously construct pipelines using lower-level primitives such as fork(2)
and execve(2).
Full programmers' documentation may be found using 'man libpipeline'.
Installation
------------
If you need to install libpipeline starting from source code, then you will
need these separate packages installed before configuring libpipeline in
order to run its test suite:
pkg-config (http://www.freedesktop.org/wiki/Software/pkg-config)
check (http://check.sourceforge.net/)
See the INSTALL file for general installation instructions.
Building programs with libpipeline
----------------------------------
libpipeline supplies a pkg-config file which lists appropriate compiler and
linker flags for building programs using it. The output of 'pkg-config
--cflags libpipeline' should be passed to the compiler (typically CFLAGS)
and the output of 'pkg-config --libs libpipeline' should be passed to the
linker (typically LDFLAGS).
If your program uses the GNU Autotools, then you can put this in
configure.ac:
PKG_CHECK_MODULES([libpipeline], [libpipeline])
... and this in the appropriate Makefile.am (replacing 'program' with the
Automake-canonicalised name for your program):
AM_CFLAGS = $(libpipeline_CFLAGS)
program_LDADD = $(libpipeline_LIBS)
The details may vary for particular build systems, but this should be a
reasonable start.
When building with GCC, you should use at least the -Wformat option
(included in -Wall) to ensure that the 'sentinel' function attribute is
checked. This means that your program will produce a warning if it calls
any of the several libpipeline functions that require a trailing NULL
without passing that trailing NULL.
Copyright and licensing
-----------------------
Copyright (C) 1994 Markus Armbruster.
Copyright (C) 1989, 1990, 1991, 1992, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Copyright (C) 2003-2017 Colin Watson.
libpipeline is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or (at
your option) any later version.
libpipeline is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with libpipeline; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA.
Note on GPL versions
--------------------
(This note is informative, and if it conflicts with the terms of the licence
then the licence is correct. See the full text of the licence in the
COPYING file for precise details.)
The core source code of libpipeline is licensed under GPL v2 or later.
However, libpipeline incorporates parts of the Gnulib portability library,
copyrighted by the Free Software Foundation and others, and much of Gnulib
is distributed under GPL v3 or later. This means that libpipeline as a
whole falls under the terms of the GPL v3 or later. Unless you take special
pains to remove the GPL v3 portions, you must therefore follow the terms and
conditions of the GPL v3 or later when distributing libpipeline itself, or
distributing code linked against it.
Note that this does not require that your own source code be licensed under
the GPL v3, contrary to popular misunderstanding. However, you must be
prepared to distribute your work as a whole under the terms of the GPL v3 or
later, which requires that your licence be compatible with the GPL v3. See
http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses if you
need advice on compatibility.
The GPL mainly restricts distribution ("conveying", in the specific language
of GPL v3), and is careful not to restrict private use. Therefore, you may
write programs for your own use that use libpipeline without needing to
license them under GPL v3-compatible terms. If you distribute these
programs to others, then you must take care to use compatible licensing.
Credits
-------
Thanks to Scott James Remnant for code review, Ian Jackson for an extensive
design review, and Kees Cook and Matthias Klose for helpful conversations.
-- Colin Watson <cjwatson@debian.org>