[boost-doc-zh] r366 committed - interprocess.qbk 转码为 utf-8

  • From: boost-doc-zh@xxxxxxxxxxxxxx
  • To: boost-doc-zh-notify@xxxxxxxxxxxxx
  • Date: Thu, 14 Jan 2010 02:36:46 +0000

Revision: 366
Author: alai04
Date: Wed Jan 13 18:35:52 2010
Log: interprocess.qbk 转码为 utf-8
http://code.google.com/p/boost-doc-zh/source/detail?r=366

Modified:
 /trunk/libs/interprocess/doc/interprocess.qbk

=======================================
--- /trunk/libs/interprocess/doc/interprocess.qbk       Wed Jan 13 06:17:39 2010
+++ /trunk/libs/interprocess/doc/interprocess.qbk       Wed Jan 13 18:35:52 2010
@@ -19,44 +19,44 @@
     ]
 ]

-[section:intro µ¼ÑÔ]
-
-[*Boost.Interprocess]¼ò»¯Á˽ø³Ì¼äͨÐźÍͬ²½»úÖƵÄÓ¦Ó㬲¢ÌṩÁ˶ÔÕâЩ»úÖƵĹ㷺֧³Ö£º
-
-* ¹²ÏíÄÚ´æ
-* ÄÚ´æÓ³ÉäÎļþ
-* ¿ÉÓÃÓÚ¹²ÏíÄÚ´æºÍÄÚ´æÓ³ÉäÎļþµÄÐźŵơ¢»¥³â¶ÔÏó¡¢Ìõ¼þ±äÁ¿¼°¿ÉÉý¼¶µÄ»¥³âÀàÐÍ -* ÉÏÊöͬ²½¶ÔÏóµÄÃüÃû°æ±¾£¬ÀàËÆÓÚUNIX/WindowsϵÄsem_open/CreateSemaphore API
-* ÎļþËø¶¨
-* Ïà¶ÔÖ¸Õë
-* ÏûÏ¢¶ÓÁÐ
-
-[*Boost.Interprocess]»¹Óиü¸ß¼¶µÄ»úÖÆÓÃÓÚ´Ó¹²ÏíÄÚ´æ»òÄÚ´æÓ³ÉäÎļþÖж¯Ì¬·ÖÅ䣨һ°ã´Ó¹Ì¶¨´óСµÄÄÚ´æ¶ÎÖзÖÅ䣩¡£ÀûÓÃÕâЩ»úÖÆ£¬
-[*Boost.Interprocess]ÌṩÁËÓÐÓõŤ¾ßÀ´ÔÚ¹²ÏíÄÚ´æºÍÄÚ´æÓ³ÉäÎļþÖй¹ÔìÀàËÆÀàSTLµÄÈÝÆ÷µÄC++¶ÔÏó£º
-
-* ÔÚ¹²ÏíÄÚ´æ»òÄÚ´æÓ³ÉäÎļþÖж¯Ì¬´´½¨ÄäÃûºÍÃüÁî¶ÔÏó¡£
-* Óë¹²ÏíÄÚ´æ/ÄÚ´æÓ³ÉäÎļþ¼æÈݵÄÀàSTLÈÝÆ÷¡£
-* Ö§³Ö¹²ÏíÄÚ´æ/ÄÚ´æÓ³ÉäÎļþµÄÀàSTL·ÖÅäÆ÷£¬¿ÉʵÏÖ¶àÖÖÄÚ´æ·ÖÅäģʽ£¨ÈçÄÚ´æ³Ø£©¡£
-
-[section:introduction_building_interprocess ½¨Á¢ Boost.Interprocess]
-
-[*Boost.Interprocess]ÊÇÒ»¸öHeader OnlyµÄ¿â£¬²»ÐèÒª±àÒëËü¡£Ö»ÒªÔÚÄãµÄ±àÒëÆ÷°üº¬Â·¾¶Àï¼ÓÈëBoostÍ·ÎļþĿ¼¾Í¿ÉÒÔÁË¡£
-
-[*Boost.Interprocess]ÒÀÀµ
-[@http://www.boost.org/libs/date_time/ [*Boost.DateTime]]£¬¶øËüÒªµ¥¶À±àÒë¡£²»¹ÜÔõÑù£¬
-ֻʹÓÃ[*Boost.Interprocess]×Ó¼¯²»ÐèÒªÈκÎÐÎʽµÄµ¥¶À±àÒ룬Óû§¿ÉÒÔ¶¨Òå`BOOST_DATE_TIME_NO_LIB`
-ÒÔ±ÜÃâBoost×Ô¶¯Á´½Ó[*Boost.DateTime]¡£
-
-ÔÚPOSIXϵͳÖУ¬[*Boost.Interprocess]ʹÓÃpthreadϵͳµ÷ÓÃÀ´ÊµÏÖ»¥³â¶ÔÏó¡¢Ìõ¼þ±äÁ¿µÈÀà¡£
-ÔÚһЩ²Ù×÷ϵͳÖУ¬ÕâЩPOSIXµ÷ÓÃ×÷Ϊµ¥¶ÀµÄ¿â£¬²»»á±»±àÒëÆ÷×Ô¶¯Á´½Ó¡£
-ÀýÈ磬һЩLinuxϵͳµÄPOSIX pthreadº¯Êý·ÅÔÚ`librt.a`¿âÀËùÒÔÁ´½ÓʹÓÃ[*Boost.Interprocess]µÄ¿ÉÖ´ÐÐÎļþ»ò¹²Ïí¿âʱ¿ÉÄÜÒª¼ÓÉÏÕâЩ¿â¡£
-Èç¹ûÄãµÃµ½¹ØÓÚÕâЩpthreadº¯ÊýµÄÁ´½Ó´íÎó£¬Çë²Î¿¼ÄãµÄϵͳÎĵµ£¬ÒÔÁ˽âËüÃǵĿâʵÏÖ¡£
+[section:intro 导言]
+
+[*Boost.Interprocess]简化了进程间通信和同步机制的应用,并提供了对这些机制的 广泛支持:
+
+* 共享内存
+* 内存映射文件
+* 可用于共享内存和内存映射文件的信号灯、互斥对象、条件变量及可升级的互斥类 +* 上述同步对象的命名版本,类似于UNIX/Windows下的sem_open/CreateSemaphore API
+* 文件锁定
+* 相对指针
+* 消息队列
+
+[*Boost.Interprocess]还有更高级的机制用于从共享内存或内存映射文件中动态分配 (一般从固定大小的内存段中分配)。利用这些机制, +[*Boost.Interprocess]提供了有用的工具来在共享内存和内存映射文件中构造类似类 STL的容器的C++对象:
+
+* 在共享内存或内存映射文件中动态创建匿名和命令对象。
+* 与共享内存/内存映射文件兼容的类STL容器。
+* 支持共享内存/内存映射文件的类STL分配器,可实现多种内存分配模式(如内存池 )。
+
+[section:introduction_building_interprocess 建立 Boost.Interprocess]
+
+[*Boost.Interprocess]是一个Header Only的库,不需要编译它。只要在你的编译器 包含路径里加入Boost头文件目录就可以了。
+
+[*Boost.Interprocess]依赖
+[@http://www.boost.org/libs/date_time/ [*Boost.DateTime]],而它要单独编译。 不管怎样, +只使用[*Boost.Interprocess]子集不需要任何形式的单独编译,用户可以定义 `BOOST_DATE_TIME_NO_LIB`
+以避免Boost自动链接[*Boost.DateTime]。
+
+在POSIX系统中,[*Boost.Interprocess]使用pthread系统调用来实现互斥对象、条件 变量等类。
+在一些操作系统中,这些POSIX调用作为单独的库,不会被编译器自动链接。
+例如,一些Linux系统的POSIX pthread函数放在`librt.a`库里,所以链接使用 [*Boost.Interprocess]的可执行文件或共享库时可能要加上这些库。 +如果你得到关于这些pthread函数的链接错误,请参考你的系统文档,以了解它们的库 实现。

 [endsect]

-[section:tested_compilers ²âÊԵıàÒëÆ÷]
-
-[*Boost.Interprocess]ÒѾ­ÔÚÏÂÃæµÄ±àÒëÆ÷/ƽ̨ÖнøÐÐÁ˲âÊÔ£º
+[section:tested_compilers 测试的编译器]
+
+[*Boost.Interprocess]已经在下面的编译器/平台中进行了测试:

 *  Visual 7.1 Windows XP
 *  Visual 8.0 Windows XP
@@ -71,61 +71,61 @@

 [endsect]

-[section:quick_guide ¿ìËÙÏòµ¼]
-
-[section:qg_memory_pool Óù²ÏíÄÚ´æ×÷ΪÄäÃûÄÚ´æ³Ø]
-
-Ö»Òª·ÖÅä¹²ÏíÄÚ´æ¶ÎµÄÒ»²¿·Ö×÷Ϊ»º´æÇø£¬°ÑÐÅÏ¢¸´ÖƽøÈ¥£¬ÔÙ°Ñ»º´æÇøÔÚ¹²ÏíÄÚ´æÖеÄÆ«ÒÆÖµ·¢Ë͸øÁíÍâµÄ½ø³Ì£¬ÈÎÎñ¾ÍÍê³ÉÀ²£¡ÈÃÎÒÃÇ¿´Ò»¸öÀý×Ó£º
+[section:quick_guide 快速向导]
+
+[section:qg_memory_pool 用共享内存作为匿名内存池]
+
+只要分配共享内存段的一部分作为缓存区,把信息复制进去,再把缓存区在共享内存 中的偏移值发送给另外的进程,任务就完成啦!让我们看一个例子:

 [import ../example/doc_ipc_message.cpp]
 [doc_ipc_message]

 [endsect]

-[section:qg_named_interprocess ½¨Á¢ÃüÃû¹²ÏíÄÚ´æ¶ÔÏó]
-
-Äã¿ÉÒÔÔÚ¹²ÏíÄÚ´æ¶ÎÖн¨Á¢¶ÔÏ󣬸³ÓÚÕâ¸ö¶ÔÏóÒ»¸ö×Ö·û´®Ãû³Æ£¬ÕâÑùÆäËü½ø³Ì¾Í¿ÉÒÔÕÒµ½¡¢Ê¹ÓÃËüÃÇ£¬ÒÔ¼°µ±²»ÔÙÐèҪʱɾ³ýËüÃÇ¡£Àý£º
+[section:qg_named_interprocess 建立命名共享内存对象]
+
+你可以在共享内存段中建立对象,赋于这个对象一个字符串名称,这样其它进程就可 以找到、使用它们,以及当不再需要时删除它们。例:

 [import ../example/doc_named_alloc.cpp]
 [doc_named_alloc]

 [endsect]

-[section:qg_offset_ptr ʹÓÃÆ«ÒÆÖÇÄÜÖ¸Õ루offset smart pointer£©]
-
-[*Boost.Interprocess] Ìṩoffset_ptrÖÇÄÜÖ¸Õë×壬Ëü±£´æµÄÊÇ×ÔÉíµØÖ·µ½ËùÖ¸¶ÔÏóµØÖ·µÄ¾àÀë¡£
-µ±offset_ptrλÓÚ¹²ÏíÄÚ´æ¶Îʱ£¬Ëü¿ÉÒÔ°²È«µØÖ¸Ïò±£´æÓÚͬһ¹²ÏíÄÚ´æ¶ÎµÄ¶ÔÏ󣬼´Ê¹Õâ¸ö¹²ÏíÄÚ´æ¶ÎÔÚ²»Í¬µÄ½ø³ÌÖÐÓ³ÉäµÄ»ùÖ·²»Í¬¡£
-
-ËüÔÊÐíÔÚ¹²ÏíÄÚ´æÖÐ×÷ΪָÕë³ÉÔ±´æ·Å¶ÔÏó¡£ÀýÈ磬ÎÒÃÇÏëÔÚ¹²ÏíÄÚ´æÖн¨Á¢Ò»¸öÁ´±í£º
+[section:qg_offset_ptr 使用偏移智能指针(offset smart pointer)]
+
+[*Boost.Interprocess] 提供offset_ptr智能指针族,它保存的是自身地址到所指对 象地址的距离。 +当offset_ptr位于共享内存段时,它可以安全地指向保存于同一共享内存段的对 象,即使这个共享内存段在不同的进程中映射的基址不同。
+
+它允许在共享内存中作为指针成员存放对象。例如,我们想在共享内存中建立一个链 表:

 [import ../example/doc_offset_ptr.cpp]
 [doc_offset_ptr]

-ΪÁË°ïÖúʹÓûù±¾Êý¾Ý½á¹¹£¬[*Boost.Interprocess] ÌṩÁËÏñvector¡¢list¡¢mapµÄÈÝÆ÷£¬ËùÒÔÄã²»ÓÃ×Ô¼ºÊµÏÖÕâЩÊý¾Ý½á¹¹£¬Ö»ÒªÏó±ê×¼ÈÝÆ÷Ò»ÑùÓþÍÐС£ +为了帮助使用基本数据结构,[*Boost.Interprocess] 提供了像vector、list、map的 容器,所以你不用自己实现这些数据结构,只要象标准容器一样用就行。
 [endsect]

-[section:qg_interprocess_container ÔÚ¹²ÏíÄÚ´æÖн¨Á¢vector]
-
-[*Boost.Interprocess] ÔÊÐíÔÚ¹²ÏíÄÚ´æºÍÄÚ´æÓ³ÉäÎļþÖн¨Á¢¸´ÔÓ¶ÔÏó¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔÔÚ¹²ÏíÄÚ´æÖй¹ÔìÀàSTLµÄÈÝÆ÷¡£ -ʵÏÖËüÎÒÃÇÖ»ÐèÒª½¨Á¢Ò»¸öÌض¨µÄ£¨ÊÜ¿ØµÄ managed£©¹²ÏíÄÚ´æ¶Î£¬ÉùÃ÷Ò»¸ö[*Boost.Interprocess] ·ÖÅäÆ÷£¬²¢ÇÒÈçͬÆäËü¶ÔÏóÒ»ÑùÔÚ¹²ÏíÄÚ´æÖй¹Ôìvector¡£
-
-ÔÊÐíÔÚ¹²ÏíÄÚ´æÖÐÓ¦Óø´ÔӽṹµÄÀà³ÆΪ[classref boost::interprocess::managed_shared_memory]£¬ËüºÜÈÝÒ×ʹÓᣲ»´ø²ÎÊýµØÔËÐÐÏÂÃæµÄÀý×Ó£º
+[section:qg_interprocess_container 在共享内存中建立vector]
+
+[*Boost.Interprocess] 允许在共享内存和内存映射文件中建立复杂对象。例如,我 们可以在共享内存中构造类STL的容器。 +实现它我们只需要建立一个特定的(受控的 managed)共享内存段,声明一个 [*Boost.Interprocess] 分配器,并且如同其它对象一样在共享内存中构造vector。
+
+允许在共享内存中应用复杂结构的类称为[classref boost::interprocess::managed_shared_memory],它很容易使用。不带参数地运行下 面的例子:

 [import ../example/doc_spawn_vector.cpp]
 [doc_spawn_vector]

-¸¸½ø³Ì½¨Á¢Ò»¸öÌØÊâ¹²ÏíÄÚ´æÀ࣬ÔÊÐí¼òµ¥µØ¹¹Ôì¶à¸öÓëÃû³Æ¹ØÁªµÄ¸´Ôӽṹ¡£Ö®ºó¸¸½ø³Ì´ø²ÎÊýµØÆô¶¯Í¬Ò»³ÌÐò£¬×Ó½ø³Ì´ò¿ª¹²ÏíÄڴ沢ʹÓÃvectorºÍɾ³ýËü¡£
+父进程建立一个特殊共享内存类,允许简单地构造多个与名称关联的复杂结构。之后 父进程带参数地启动同一程序,子进程打开共享内存并使用vector和删除它。

 [endsect]

-[section:qg_interprocess_map ÔÚ¹²ÏíÄÚ´æÖн¨Á¢map]
-
-¾ÍÏóvectorÒ»Ñù£¬[*Boost.Interprocess] ¿ÉÒÔÔÚ¹²ÏíÄÚ´æºÍÄÚ´æÓ³ÉäÎļþÖн¨Á¢map¡£Î¨Ò»µÄÇø±ðÊÇ£¬ºÍ±ê×¼¹ØÁªÈÝÆ÷Ò»Ñù£¬[*Boost.Interprocess]µÄmapÔÚ¹¹Ôì·½·¨Öд«Èë·ÖÅäÆ÷ʱҲÐèÒª±È½ÏËã×Ó£º
+[section:qg_interprocess_map 在共享内存中建立map]
+
+就象vector一样,[*Boost.Interprocess] 可以在共享内存和内存映射文件中建立 map。唯一的区别是,和标准关联容器一样,[*Boost.Interprocess]的map在构造方法 中传入分配器时也需要比较算子:

 [import ../example/doc_map.cpp]
 [doc_map]

-¸ü¶à¸ß¼¶Àý×Ó£¬°üÀ¨ÈÝÆ÷µÄÈÝÆ÷£¬Çë²Î¿¼[link interprocess.allocators_containers.containers_explained.containers_of_containers ÈÝÆ÷µÄÈÝÆ÷]Ò»½Ú¡£ +更多高级例子,包括容器的容器,请参考[link interprocess.allocators_containers.containers_explained.containers_of_containers 容器的容器]一节。

 [endsect]

Other related posts:

  • » [boost-doc-zh] r366 committed - interprocess.qbk 转码为 utf-8 - boost-doc-zh