怎样增加系统支持得伪终端数量?Windows系统
“ztserver”通过精心收集,向本站投稿了6篇怎样增加系统支持得伪终端数量?Windows系统,下面是小编为大家整理后的怎样增加系统支持得伪终端数量?Windows系统,供大家参考借鉴,希望可以帮助您。
篇1:怎样增加系统支持得伪终端数量?Windows系统
我得系统现在最多允许同时打开34个,不够用,怎么把这个数字搞大些?谢谢了先 飞天二狭 回复于:-11-15 12:55:45 精华里有,去找 吹拂的晨风 回复于:2004-11-16 22:39:04 飞天说的是不是这个 #cd/dev/pts #rm* #./SYSV_PTY #./MAKEDEVPTY_2 #./MAKEDEVPT
我得系统现在最多允许同时打开34个,不够用,怎么把这个数字搞大些?谢谢了先
飞天二狭 回复于:2004-11-15 12:55:45精华里有,去找
吹拂的晨风 回复于:2004-11-16 22:39:04飞天说的是不是这个
# cd /dev/pts
# rm *
# ./SYSV_PTY
# ./MAKEDEV PTY_2
# ./MAKEDEV PTY_3 PTY_1 创建 pty0 - pty22, PTY_2 创建 pty23 - pty45 etc
飞天二狭 回复于:2004-11-16 22:49:41是啊,还有呢?
吹拂的晨风 回复于:2004-11-17 08:45:29还有?还有什么呀,飞天补充吧!嘿嘿!
:em02: :em02: :em02:
lifeixiao 回复于:2004-11-17 17:28:19$ cd dev
$ cd pts
$ ./SYSV_PTY
./SYSV_PTY: not found
=======
不能用啊
飞天二狭 回复于:2004-11-17 19:50:04# sysconfig -q pts
nptys=255
说明系统只容许256个TELNET用户
改为 # sysconfig -r pts nptys=2047
系统容许2048个te.net用户
这种方式不用重新启动系统(v5.0 or higher)
或者直接改sysconfigtab文件:
pts:
nptys=2047
再重新启动系统
另外在控制面板上有个kernel Tuner里有个选项,nptys 默认为255,改大一些就行,
怎样增加系统支持得伪终端数量?Windows系统
,
个人认为,这些参数在没有太大必要的时候,不要更改,系统性能也会相应下降,这些默认就是系统的最佳状态啊。
:em04: :em04: :em04: :em04: :em04:
原文转自:www.ltesting.net
篇2:Windows 系统终端服务器拒绝服务漏洞
受影响系统:
Microsoft Windows 2000SP4
Microsoft Windows 2000SP3
Microsoft Windows 2000SP2
Microsoft Windows 2000SP1
Microsoft Windows 2000
描述:
--------------------------------------------------------------------------------
Windows 2000终端服务器是一款可用于远程管理的服务程序,
Windows 2000终端服务器在处理打开连接实现时存在问题,攻击者可以利用这个漏洞对Windows 2000服务程序进行拒绝服务,
从终端服务器到客户端打开的连接超过千个可使服务程序引起崩溃,这可通过建立一个V/VBA宏来打开很多连接来实现。
<*来源:Nick Caramella (root@caramella.freeserve.co.uk)
链接:marc.theaimsgroup.com/?l=bugtraq&m=109851167126357&w=2
*>
建议:
--------------------------------------------------------------------------------
厂商补丁:
Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.microsoft.com/technet/security/
篇3:让启动盘支持中文Windows系统
如果我们需要在DOS下处理含有中文名的文件(夹),就需要有一张支持中文显示和输入的启动盘,这里我们来制作一张简单的中文启动盘。 1、在软驱中放入一张软盘,然后在 Windows 资源管理器中,用鼠标右键单击软盘盘符,在打开的快捷菜单中选择“格式化”命令
如果我们需要在DOS下处理含有中文名的文件(夹),就需要有一张支持中文显示和输入的启动盘。这里我们来制作一张简单的中文启动盘。
1、在软驱中放入一张软盘,然后在Windows资源管理器中,用鼠标右键单击软盘盘符,在打开的快捷菜单中选择“格式化”命令,在格式化对话框中选择“复制系统文件”选项,然后单击“开始”按钮,将这张软盘格式化成为一张最简单的启动盘。
2、在资源管理器中打开“C:WindowsCommand”文件夹,将pbios.exe、font16.exe、hzvio95.exe、hzkbd.exe、ctrlpan.exe这五个文件拷入刚才做好的启动盘中,此时的启动盘已经能支持中文显示了。
3、如果要使启动盘支持中文输入,可将“C:WindowsCommand”文件夹中的instdict.exe和pinyin.tbl文件复制到启动盘中,然后在该启动盘中创建一个批处理文件,取名为Pdos95.bat,并编辑这个文件,输入如下命令:pbios
font16
hzvio95
hzkbd
instdict pinyin
ctrlpan
4、用制作好的启动盘启动系统,在DOS命令提示符下输入Pdos95.bat并回车,就会提示中文平台已经加载成功。输入DIR命令并回车,目录中的中文就再也不是乱码了。按下“Ctrl+空格”组合键即可打开中文输入法,如果你同时加载了多个输入法,可以按下“Ctrl+Shift”组合键进行切换。
三、能识别NTFS的启动盘
在DOS系统中无法识别NTFS分区,这是很多读者朋友都感到麻烦的事情。不过我们可以用NTFSDOS Pro来制作一个能识别NTFS分区的启动盘(本站下载专区中有此软件)。
用NTFSDOS Pro制作的启动盘,虽然使用的是DOS环境,但是却提供了对NTFS文件系统的完全读写操作,并能在MS-DOS方式下支持长文件名,
1、安装好软件后,在“开始”菜单中找到并运行“NTFSDOS Boot Disk Wizard”,在欢迎和功能介绍页面后,进入“Language Selection”(语方选择)对话框,在列表框中选择本机DOS所用的语言版本,这里选择Chinese(PRC)方式。
2、接下来要确定WinNT//XP的安装目录,因为NTFSDOS Pro在制作启动盘时要从本地WinNT/2000/XP系统目录中复制几个文件。你可在窗口的文字框中填入WinNT/2000/XP系统所在目录,或在文字框后“…”按钮,浏览并选择Windows系统所在目录。
3、接下来需要确定NTFSDOS Pro软件运行的位置,这个位置必须是在DOS下能够访问到的位置,最好是A盘(需要两张软盘)。你可以在文字框输入软驱盘符“A:”或是硬盘上的其他路径,即可把这些文件复制到软盘或指定目录中。
4、制作完毕后,首先用启动盘启动到DOS下,然后运行NTFSPRO命令,即可实现对NTFS分区的识别。
四、启动光盘制作
由于软盘容量有限,且容易损坏,因此如果有刻录机的朋友,最好制作一张启动光盘来代替启动软盘。绝大部分刻录软件都有制作启动光盘的功能,这里以常用的Nero 5.5.8.0汉化版为例,说明启动光盘的制作方法。
1、启动Nero后,会弹出向导(精灵)对话框,点击“取消”按钮,进入“新专辑”对话框。
2、在软驱中插入Win98启动软盘,然后在“新专辑”对话框中的左侧列表中选择“CD-ROM(BOOT)”项目,右边窗口中“可启动的逻辑启动器”会自动显示“A:2MB”,一般用户建议不要选择“启动专家模式设置”。
3、按“新建”按钮进入程序主窗口。实际上启动程序只占用了光盘中很小的一部分空间,其它的多余空间,你可将要用的系统安装文件、驱动程序和常用的工具软件一并放入启动光盘。
尤其需要说明的是,我们可以下载一个名为NTFS For DOS的工具(本站下载专区中有此软件),将下载后的文件解压后也放入启动光盘。该工具的主程序名为ntfsdos.exe,在DOS下运行该命令,即可识别NTFS格式的分区。
4、设定好内容后,放入一张空的刻录盘,选择“文件”菜单中的“写入光盘”命令开始刻录。 提示:添加到启动光盘中的文件,命名时必须遵守ISO9660标准。不要使用中文名和长文件名,否则在启动光盘中不能正常读取数据。
原文转自:www.ltesting.net
篇4:informix支持中文问题!Windows系统
Online在5版本时可以存储任何字符串,包括所有中文字符串与英文字符串,不加任何限制,不需安装其它附加产品,不必设置其它环境变量, Online在7.2版以前遵从X/Open的NLS(NativeLanguageSupport)的标准支持中文( XP G3规范),不必安装附加语言支持产品。这是
Online在5版本时可以存储任何字符串,包括所有中文字符串与英文字符串,不加任何限制,不需安装其它附加产品,不必设置其它环境变量。
Online在7.2版以前遵从X/Open的NLS(Native Language Support)的标准支持中文(XPG3规范),不必安装附加语言支持产品。这是一种单字节的支持方式,前提是操作系统也要支持NLS,换句话说,Online是基于操作系统支持中文的。一般设置操作系统环境变量LANG之后,重新启动Online后,原来的数据库即可处理中文,有时也要设DBNLS环境变量。不同的操作系统的LANG的设置方法一般不同,下面列出HP和SCO上的设法:
SCO UNIX:export LANG = english_us.8859
HP-UX: export LANG = en_US.iso88591
ONLINE在7.2以上版本采用GLS(Global Language Support)的方式支持中文,GLS是基于X/Open的XPG4规范之上开发的,这是一种多字节的全球语言支持方式。在安装完Online之后,必须正确安装Informix - Language Supplement ZHCN产品,并设置适当的环境变量,然后启动ONLINE,重新建立数据库,才可处理汉字。方法如下:
1)按照INFORMIX产品安装方法,最后安装Informix Language Supplement ZHCN。
2)一般设置下面三个环境变量:
export DB_LOCALE=zh_CN.gb
export CLIENT_LOCALE=zh_CN.gb
export SERVER_LOCALE=zh_CN.gb
除了这三个环境变量之外,DBLANG=en_us.8859-1可以指定Informix产品内部使用英文。
3)正常启动ONLINE。
4)重新建立数据库
这篇文章为本人收集,原作为大梦,写的很细,应该设为精华!
希望对大家有点帮助!
CNL 回复于:-09-28 10:11:43收下先,谢谢!
jiupima 回复于:2004-09-28 10:18:05本技术说明使用的术语和首字母缩略词包括:
GLS
全球语言支持(Global Language Support)。
语言环境(Locale)
语言、地域和代码集
本地化(Localize)
使软件用于特定的语言环境
国际化(Internationalize)
使软件用于任何语言环境
UDR
用户定义的例程
简介
国际化的用户定义的例程(UDR)无需修改和重新编译源代码即可支持不同的语言和文化约定。
Informix GLS 库是一个 API,它让 UDR 处理单字节和多字节字符并管理日期、时间和数值的不同数据格式。GLS 函数可以在运行时访问特定于语言环境的信息,因而 UDR 无需知道客户机的语言环境,就可以让客户机采取正确的行为。
本技术说明突出说明了实现国际化的 UDR 时要考虑的问题,并指出了您可能要为特定语言额外提供的支持。
GLS 概述与定义
全球语言支持(Global Language Support (GLS))是允许 Informix 产品、单个应用程序或 UDR 支持多种语言的 Informix 特性。本节概述了一些重要术语。
GLS 语言环境
对应于语言、地域和代码集:
语言(language)指定可以使用的字符种类、如何对字符进行排序和比较、字母大小写转换和消息。
地域(territory)确定日期、时间、货币和数字的格式。
代码集(code set)包括单字节和多字节字符串处理,以及同一字符在客户机和服务器上不同表示法之间的代码集转换。
缺省的 Informix 语言环境如下:
en_us.8859-1 UNIX 8859-1 是 ISO8859-1 代码集。
en_us.1252Windows1252 是 Microsoft 代码集。
ISO8859-1 代码集有另外一些形式。0333 是其精简形式,而 IBM 又将 ISO8859-1 注册为CCSID 819。因此以下三种语言环境指的是同一代码集:
en_us.8859-1
en_us.0333
en_us.819
Informix 使用以下环境变量来指定语言环境:
CLIENT_LOCALE 客户机应用程序使用的语言环境。
DB_LOCALE 数据库中数据的语言环境。
SERVER_LOCALE 数据库服务器用于其特定于服务器的文件的语言环境。
国际化
指的是实现产品(如 DataBlade 模块),以便它们与语言无关。国际化的 UDR 无需更改或重新编译源代码即可支持不同语言、地域和代码集。
Informix 服务器是国际化的产品。Informix GLS 库提供了一些函数,以使 DataBlade 模块和客户机应用程序能使用 GLS 语言环境中的信息来:
处理单字节和多字节字符
格式化日期、时间和数值数据
本地化
指的是在运行时解析特定语言环境的信息,以使国际化的产品针对该语言环境正确执行;例如,本地化的应用程序使用户能看到用他们自己的语言显示的错误消息和用他们期望的格式显示的日期。
对特定语言环境的支持集中在一组文件中。(特定于语言环境的 DataBlade 消息存储在系统目录中)。UNIX glfiles 命令会输出 UNIX 系统支持的语言环境的列表。对于 Informix 分发版中没有包括的语言环境,International Language Supplement 提供语言环境、代码集转换和已翻译的用户界面与文档。
尽管本技术说明主要讨论 UDR 实现,但 DataBlade 开发人员也需要考虑任何客户机组件的国际化,这些组件是作为 DataBlade 模块的一部分而包括在模块中的。
GLS 产品
GLS 文档
DataBlade 开发人员需要以下文档:
Informix Guide to GLS Functionality
这是实现支持 GLS 的产品的核心文档。
Informix GLS Programmer's Manual
该手册描述如何使用 Informix GLS API 调用。
GLS Documentation and Release Notes
请常常查看最新的分发版以获得新的信息:
$INFORMIXDIR/release
Informix DataBlade API Programmer's Manual
讨论用于产生错误和输出跟踪消息的 GLS 特性。
DataBlade Developers Kit User's Guide
DBDK 生成使用 GLS 调用的源代码。
DataBlade 开发人员需要什么 Informix 产品?
您需要以下 Informix 产品来实现支持多语言的 DataBlade 模块:
Informix Dynamic Server
DataBlade Developers Kit
BladeSmith 生成使用多个 GLS 库函数的代码,包括用于异常处理和跟踪的函数。
Client Software Development Kit
International Language Supplement (ILS),用于所有您计划支持但缺省分发版没有包括的语言环境(用 glfiles 命令检查),以使您能在每个语言环境中测试blade 的行为。
您还需要前面的 GLS 文档一节中列出的文档。
客户需要什么 Informix 产品?
您的客户需要以下产品以在其语言环境中运行您的 DataBlade 模块:
Informix Dynamic Server
您的 DataBlade 模块
用于客户的语言环境的 International Language Supplement (ILS)(如果它尚未包括在分发版中的话)。
客户还必须通过适当地设置 CLIENT_LOCALE 和 DB_LOCALE 环境变量来正确地设置其 GLS 环境。
什么需要国际化/本地化?
DataBlade 模块开发人员必须同时解决国际化问题与本地化问题。首先,您需要实现 UDR 以使其与语言无关。也就是说,对于其要处理的数据,DataBlade 模块不对在运行时使用的语言、地域或代码集做任何假定。因此您就需要将任何与语言有关的部分(如错误消息)移植到您希望支持的每一个语言环境。本节概述了一些问题。
文本 I/O
Informix GLS 库提供这样的函数,它们使用当前正在处理的语言环境中的信息来扫描和格式化多字节字符串、日期、数字和货币。使用这些函数来解析输入字符串或格式化输出字符串。它们在以下文档中有描述:
Informix Guide to GLS Functionality
Informix GLS Programmer's Manual
在何处将这一点应用到 UDR 的示例是对 opaque 类型外部(基于字符)格式的处理。
DBDK 为 opaque 类型输入/输出支持函数生成代码,该代码在 GLS 文本与 opaque 类型内部二进制表示法之间进行转换。
mi_get_string 和 mi_put_string() DataBlade API 函数自动对字符串/文本数据执行代码集转换。
(对于数值数据的二进制传送,mi_put_* 和 mi_get_* 函数 ― 用于 opaque 类型发送/接收支持函数 ― 也会自动执行代码集转换)。
错误消息
syserrors 系统目录表存储 DataBlade 异常消息,这些消息可以通过向 mi_db_error_raise() 传递 MT_SQL消息类型来产生。每个错误消息项都有与之相关的语言环境。当错误被产生时,服务器会设法将 CLIENT_LOCALE 与 syserrors 中的一个错误匹配。它首先进行显式匹配,如果找不到匹配的对象,则以下列次序进行搜索,尝试部分匹配:
确切的客户机语言环境
例如:es_es.8859-1
客户机语言环境的语言 + 地域
例如:es_es
仅客户机语言环境的语言
例如:es
缺省(en_us)语言环境
UNIX 上的 en_us.8859-1,以及 NT 上的 en_us.1252。
解析出最终缺省 en_us 语言环境的方法取决于用户是否设置了 CLIENT_LOCALE:
如果未设置 CLIENT_LOCALE,则根据语言环境的部分匹配得出缺省语言环境。
如果 en_us.1252(NT)错误位于 UNIX 服务器上的 syserrors 表中,则根据 en_us 部分匹配查找消息。
如果设置了 CLIENT_LOCALE,则根据对该平台的完全匹配解析出缺省语言环境。
如果 en_us.1252(NT)错误位于 UNIX 服务器上的 syserrors 表中,则将根据 en_us.8859-1 的完全匹配查找语言环境,从而产生 “Message cannot be found” 错误。
服务器的 9.2 发行版都将执行 en_us 语言环境的部分匹配,而不管是否设置了 CLIENT_LOCALE。同时,要意识到 BladeSmith 缺省时生成语言环境为 en_us.1252 的消息。如果您的目标是 UNIX 系统,请将语言环境更改为 en_us.8859-1。如果您计划支持 NT 和 UNIX,请同时向两个语言环境注册同一错误消息。
您还可以将 DataBlade 异常消息翻译成您打算支持的各种特定语言,并将这些消息存储在 syserrors 系统目录表。(顺便说一下,如果您希望使用 UDR 插入本地化的消息,请参阅下面的“从 UDR 将本地化错误消息插入到 syserrors 中”一节)。
请参阅 Informix DataBlade API Programmer's Manual 中“Exception Raising”一节和下面的示例。
跟踪消息
systracemsgs 系统目录存储可以用 gl_tprintf() 输出的 DataBlade 跟踪消息。除了翻译所有要显示给最终用户的跟踪消息以外,请务必提供 en_us 缺省消息。
请参阅 Informix DataBlade API Programmer's Manual 中的“DataBlade API Support for an Internationalized UDR”一节。
查询处理
Informix 支持用于数据库对象的名称(如表和列)的多字节字符。当然,表可以在 NCHAR 和 NVARCHAR 列中存储包含多字节字符的值。
检查使用 mi_exec() 或 mi_exec_prepared_statement() 执行 SQL 查询的任何 UDR。如果查询可以访问用户定义的数据库对象或获取用户提供的数据,则 UDR 应该在创建 SQL 语句和获取查询结果时准备好处理非 ASCII 字符。
示例
错误消息
RGBA DataBlade 模块实现管理计算机颜色的 opaque 类型。
用于 RGBA 的输入函数将外部(文本)表示法转换成内部的 C 数据结构。当填充了 C 结构后,DataBlade 代码会检查每个元素是否在 0-255 内。如果用户输入 256,则根据用户的语言环境会产生与下面相似的错误:
语言环境 错误消息
en_us.1252 (URGB1) - RGBAInput: R value 256 is not within the valid range of 0-255.
es_es.8859-1 (URGB1) - RGBAInput: el valor R 256 no calza entre los limites de 0-255.
本节描述源代码需要做什么、要将什么消息存储在 syserrors 表中,以及数据库服务器如何决定输出哪个错误。
下面的代码演示输入函数如何检查 RGBA 的红色部分以及如何产生错误。
if(Gen_RetVal->red < 0 || Gen_RetVal->red > 255)
mi_db_error_raise
(
Gen_Con, /* Connection handle */
MI_SQL, /* Message type */
“URGB1”, /* SQLSTATE in syserrors */
“FUNCNAME%s”, /* token takes string */
“RGBAInput”, /* value for FUNCNAME */
“VALUE%d”, /* token takes an integer */
(mi_integer) Gen_RetVal->red, /* value for VALUE token */
NULL /* No more tokens */
);
mi_db_error_raise() 调用中的 MI_SQL 消息类型表明应该根据第三个参数中的 SQLSTATE 值在 syserrors 系统目录表中查找错误。如果我们从 syserrors 系统目录进行选择,我们会看到有两个不同的“URGB1”错误:
> select * from syserrors where sqlstate='URGB1';
sqlstate URGB1
locale en_us.1252
level 0
seqno 1
message %FUNCNAME%: R value %VALUE% is not within the valid range of 0-255.
sqlstate URGB1
locale es_es.8859-1
level 0
seqno 1
message %FUNCNAME%: el valor R %VALUE% no calza entre los limites de 0-255.
用以下 SQL 插入(insert)语句将这些异常消息插入到 syserrors 系统目录表中:
insert into informix.syserrors (level, seqno, sqlstate, locale, message)
values
(
0,
1,
“URGB1”,
“en_us.1252”,
“%FUNCNAME%: R value %VALUE% is not within the valid range of 0-255.”
);
insert into informix.syserrors (level, seqno, sqlstate, locale, message)
values
(
0,
1,
“URGB1”,
“es_es.8859-1”,
“%FUNCNAME%: el valor R %VALUE% no calza entre los limites de 0-255.”
);
RGBA 项目是通过 BladeSmith 使用的缺省语言环境 en_us.1252 生成的。我们稍后就会看到当在 UNIX 机器上遇到错误时这有什么影响。
以下示例假定在 Solaris 机器上运行,机器有缺省的 en_us.8859-1 语言环境。如果未设置 CLIENT_LOCALE,服务器会查找缺省美式英语语言环境的部分匹配,并输出该消息:
bladerunner% echo $CLIENT_LOCALE
CLIENT_LOCALE: Undefined variable
bladerunner% dbaclearcase/“ target=”_blank“ >ccess colors -
> create table colors (id serial, color rgba);
> insert into colors values (0, '255 0 255 0');
> insert into colors values (0, '256 0 255 0');
(URGB1) - RGBAInput: R value 256 is not within the valid range of 0-255.
如果设置了 CLIENT_LOCALE,则如果该语言环境存在,服务器会为该语言环境输出消息:
bladerunner% setenv CLIENT_LOCALE es_es.8859-1
bladerunner% dbaccess colors -
> insert into colors values (0, '256 0 255 0');
(URGB1) - RGBAInput: el valor R 256 no calza entre los limites de 0-255.
首先服务器设法匹配整个语言环境,
如果找不到匹配,则它会尝试匹配语言和地域。如果仍找不到匹配,则它会尝试只匹配语言。例如,将西班牙语消息输入到 syserrors 中,其语言环境为 es_es.8859-1。即使客户机有不同的代码集,仍可解析出消息:
bladerunner% setenv CLIENT_LOCALE es_es.CP1252
bladerunner% dbaccess colors -
> insert into colors values (0, '256 0 255 0');
(URGB1) - RGBAInput: el valor R 256 no calza entre los limites de 0-255.
接下来我们将 CLIENT_LOCALE 设置为在 syserrors 中没有项的德语语言环境。如果服务器不能根据部分匹配找到适合语言环境的消息,它会寻找 en_us 语言环境的完整匹配。在这种情况下,我们缺省的 UNIX 语言环境是 en_us.8859-1,但 en_us 错误消息是用于 en_us.1252 的,因此它输出 ”message cannot be found“ 错误:
bladerunner% setenv CLIENT_LOCALE de_de.8859-1
bladerunner% dbaccess colors -
> insert into colors values (0, '256 0 255 0');
(URGB1) - Message cannot be found.
因此,对于每个您计划运行的平台,请确保在它的缺省语言环境中插入了英语消息:en_us.8859-1(UNIX)和 en_us.1252(NT)。
从 9.2 开始,服务器将对 en_us 语言环境完成部分匹配,并且将不再有插入重复的 en_us 错误的必要。
浮点值
ifx_gl_format_number() 和 ifx_gl_convert_number() 在文本字符串和浮点变量之间进行转换。然而,两个函数都将浮点值存储为十进制。因为双精度值的范围大于十进制的范围,所以这两个函数无法转换非常大的浮点值。
9.2 中的两个新函数 ifx_gl_format_double() 和 ifx_gl_convert_double() 使用双精度而不是十进制。遗憾的是,新函数的函数原型不小心在 $INFORMIXDIR/incl/public/ifxgls.h 中被省略了,因此在下面包括它们:
MI_EXT_DECL int
ifx_gl_convert_double (double *d,
char *dstr,
char *format);
MI_EXT_DECL int
ifx_gl_format_double ( char *dstr,
int len,
double d,
char *format);
下面的 GetDouble() UDR 显示了如何将 mi_lvarchar UDR 参数转换成双精度值。如果传递给它的整数标志是 0,则它使用 ifx_gl_convert_number() 执行转换。否则,它使用 ifx_gl_convert_double() 执行转换。
#include
#include
mi_double_precision *
GetDouble (mi_lvarchar *Gen_param1, mi_integer flag, MI_FPARAM *fp)
{
mi_double_precision *retval=NULL;
gl_mchar_t *Gen_InData;
int status, glerror;
/* ifx_gl_* return code */
mi_decimal dec_number;
/* for ifx_gl_convert_number */
double d=0;
/* double result */
mi_string errbuf[80];
/* Allocate the return value. */
retval =
(mi_double_precision *)mi_alloc(sizeof(mi_double_precision));
if(retval == NULL)
{
mi_fp_setreturnisnull(fp, 0, MI_TRUE);
mi_db_error_raise(NULL, MI_EXCEPTION, ”mi_alloc failed!“);
return (mi_double_precision *)NULL;
}
/* Convert mi_lvarchar argument
into a NULL-terminated string. */
Gen_InData = (gl_mchar_t *)mi_lvarchar_to_string(Gen_param1);
/* Convert the null-terminated string to a double.
** If the return value is not 0, the conversion failed and
** ifx_gl_lc_errno() retrieves a more specific error code.
*/
if(flag == 0) /*
use ifx_gl_convert_number() */
{
/* ifx_gl_convert_number()
stores the result in a decimal
** variable, so it handles a smaller range than a double.
*/
status=ifx_gl_convert_number(&dec_number, Gen_InData, ”%e“);
if(status != 0)
glerror=ifx_gl_lc_errno();
else
dectodbl(&dec_number, (double *)&d);
/* convert to double */
}
else /* use ifx_gl_convert_double()
*/
{
/* ifx_gl_convert_double() stores
the result in a double
** variable.
*/
status=ifx_gl_convert_double(&d,
(char *)Gen_InData, (char *)”%e“);
if(status != 0)
glerror=ifx_gl_lc_errno();
}
if(status != 0)
{
switch (glerror)
{
case IFX_GL_INVALIDFMT:
sprintf(errbuf,
”GetDouble: conversion failed [%d:IFX_GL_INVALIDFMT]“,
status);
break;
case IFX_GL_PARAMERR:
sprintf(errbuf,
”GetDouble: conversion failed [%d:IFX_GL_PARAMERR]“,
status);
break;
default:
sprintf(errbuf,
”GetDouble: conversion failed [%d:%d]!“,
status,glerror);
break;
}
mi_fp_setreturnisnull(fp, 0, MI_TRUE);
mi_db_error_raise(NULL, MI_EXCEPTION, errbuf);
return (mi_double_precision *)NULL;
}
mi_free(Gen_InData); /*
mi_lvarchar_to_string() allocated val */
*retval = (mi_double_precision) d;
return retval;
}
如果传递给 GetDouble() 的整型参数是 0,则底层的代码使用 ifx_gl_convert_number()。以下两个查询中的数字足够小,可以以十进制存储:
execute function GetDouble(”1234.5“,0);
(expression)
1234.500000000
1 row(s) retrieved.
execute function GetDouble(”9.875e-43“,0);
(expression)
9.875e-43
1 row(s) retrieved.
然而,接下来的数字对于十进制而言太大了,所以查询失败:
execute function GetDouble(”1.000000e+150“,0);
(expression)
(U0001) - GetDouble: conversion failed [-1:IFX_GL_PARAMERR]
Error in line 24
Near character position 45
如果传递给 GetDouble() 的整型参数是 1,那么底层代码使用 ifx_gl_convert_double(),它直接以双精度存储结果。所有的查询都会成功。
execute function GetDouble(”1234.5“,1);
(expression)
1234.500000000
1 row(s) retrieved.
execute function GetDouble(”9.875e-43“,1);
(expression)
9.875e-43
1 row(s) retrieved.
execute function GetDouble(”1.000000e+150“,1);
(expression)
1.000000e+150
1 row(s) retrieved.
从 UDR 将本地化错误消息插入到 syserrors
Datablade 开发人员可能需要将语言环境与当前会话不同(例如,希望安装 SJIS 消息而当前会话的 DB_LOCALE 被设置为 EUC)的本地化错误消息插入到 syserrors 表中。当消息的语言环境与会话的语言环境不同时,通过 SQL 脚本装入消息或使用 mi_exec() 从 UDR 装入消息的正常过程是不可靠的,因为 SQL 解析器不能识别的字符将触发错误条件。
通过创建一个 UDR,它使用预编译的包含 sqlstate 占位符和消息数据的语句(mi_prepare())来装入错误消息,可以避免这个 SQL 解析器问题。稍后,在对执行预编译的语句(mi_exec_prepared_statement())的调用中提供数据。
下面的 UDR 代码演示了如何将语言环境的 sqlstate 和消息列字符串编辑成消息数组,然后将其作为数据传递以将消息插入到 syserrors。由于可读性原因,演示的特定语言环境是 EUC,但该方法可用于任何语言环境。
#include
#include
#include ”mi.h“
#define MAX_MSG 3
char *enus_msg[MAX_MSG][2] = {
”XT010“, ”First error message for insertion“,
”XT020“, ”Second error message for insertion“,
”XT030“, ”Third error message for insertion“
};
/*
* Title: gls_insert_enus
* Purpose: Add localized messages to the system error table 'syserrors'
* for given locale independent of locale setting of session.
*/
mi_integer
gls_insert_enus()
{
MI_DATUM args[2]; /* pointers to column values */
mi_integer lens[2]; /* lengths of column values */
mi_integer nulls[2]; /* null capability of columns */
mi_string *types[2]; /* types of columns */
mi_integer i;
MI_STATEMENT *stmt;
MI_CONNECTION *conn = mi_open(NULL, NULL, NULL);
/*
* Prepare statement using placeholder values for sqlstate and message
* columns while providing fixed values for locale, level, seqno columns.
*/
stmt = mi_prepare(conn,
”insert into syserrors values(?,'en_us.8859-1',0,1,?)“, NULL);
for (i=0; i
{
args[0] = (MI_DATUM)enus_msg[i][0]; /* Set pointer to sqlstate string */
lens[0] = strlen(args[0]); /* Set length of sqlstate string */
nulls[0] = MI_FALSE; /* Set null handling capability */
types[0] = ”char(5)“; /* Set sqlstate column type */
args[1] = (MI_DATUM)enus_msg[i][1]; /* Set pointer to message string */
lens[1] = strlen(args[1]); /* Set length of message string */
nulls[1] = MI_FALSE; /* Set null handling capability */
types[1] = ”varchar(255)“; /* Set message column type */
mi_exec_prepared_statement(stmt,0,0,2,args,lens,nulls,types,NULL,NULL);
}
mi_close(conn);
return 0;
}
已知问题
94450: ifx_gl_format_number() outputs %g incorrectly if value is very large
如果指数表示法中的字符串非常大,则输出会在“e”的后面插入空格。例如,值:
.123456789012e80
变成:
1.234567e 79
tomcat8890 回复于:2004-09-28 14:43:18精华
原文转自:www.ltesting.net
篇5:怎样测试网线Windows系统
在组建局域网的过程中,人们往往会不惜重金去购买高档网卡、交换机、路由器,而忽略了这“不起眼”的网线 质量 ,其实网线的质量对局域网的传输 性能 影响最直接,因此对网线进行 测试 是选购网线过程中的一个很重要的环节,只有多看、多测试才能在鱼龙混杂
在组建局域网的过程中,人们往往会不惜重金去购买高档网卡、交换机、路由器,而忽略了这“不起眼”的网线质量。其实网线的质量对局域网的传输性能影响最直接,因此对网线进行测试是选购网线过程中的一个很重要的环节,只有多看、多测试才能在鱼龙混杂的网线市场中选到真正令自己放心的产品,也只有多测试,大家才能获得对网线的真实感受,为此笔者就和大家详细谈一谈如何对网线进行全方位测试。1、测试网线的速度
对网线的传输速度进行测试是鉴别网线质量真伪的最有效手段;测试时为了更贴近实际使用环境,同时减少外界干扰环节,笔者建议采用双机直联的方式进行。同时为了保证测试的准确性,尽量使用质量好的品牌网卡,保证测试时不会发生硬件瓶颈现象;同时也要保证计算机系统干净、整洁,运行速度快,不然计算机本身的运行速度会影响网线传输速度。此外,在做连接网线时,尽量使用质量好的水晶头,也要保证线头做得规范,只有这样才能将外界因素对网线传输速度的影响降低到最小程度。
2、检查网线柔韧性
品质良好的网线在设计时考虑到布线的方便性,尽量做到很柔韧,无论怎样弯曲都很方便,而且不容易被折断。而目前市场上有许多奸商为了能获得高额销售利润,在本来是纯铜质量的网线中参入了其他廉价的金属成分,这样网线的成本就会下降,但网线本身的质量和性能却大不一样,表现出来的现象是网线线缆的质地不再那么柔软,网线的传输速度也大打折扣。要是在布线的过程中,反复弯曲这样的网线的话,网线里面的铜线缆可能就会被折断。当然如果发现网线太柔软的话,也要注意它可能是假冒伪劣产品。
3、测试网线的可燃烧性
一般来说组成网线的材料必须要求有抗燃烧性,不然的话出现个火灾什么的话,那就损失惨重了。因此大家在选择网线时,一定要检查网线外皮的可燃烧性,以辨别真伪。在具体测试时,大家可以先用剪刀切取2厘米左右长度的网线外皮,然后用打火机对着外皮燃烧,正品网线的外皮会在焰火的烧烤之下,逐步被熔化变形,但外皮肯定不会自己燃烧起来;要是发现网线的外皮禁不住烈火的考验,一点就燃烧起来的话,那网线的传输速度再怎么高也应该放弃选择,毕竟这样的网线在布线工程中是很不安全的,使用它会留下很大的安全隐患,
笔者曾经找来一段正品网线与伪劣网线,并同时用打火机点燃它们,发现6秒钟后,正品网线只是冒白烟并随着时间推移,逐步熔化变形,而伪劣网线不到2秒钟,就被轻易点燃了,而且伴有大量黑烟产生。
4、测试网线的抗温性
布线工程中对网线抵抗外界温度的变化有相当高的要求,不说能抵抗任何环境变化吧,至少网线不能在高温或者低温环境下被软化或者被冻裂。为了保证在高温环境下网线的性能不受影响,正品网线采用的外皮材料可以抵抗高达50度左右的高温考验,不会出现类似网线被软化或者变形的现象发生。如果截取一小段网线外皮,放在火炉旁边一段时间,发现该外皮比正常的外皮变软的话,就说明该网线的质量肯定不过硬。
5、识别网线外皮上的标志
在实际挑选网线的时候,有时缺少测试的环境或者条件,无法通过上面的方法对网线的质量或者材料进行测试时,大家不妨通过观察网线外皮上的标识来鉴别网线的真伪。通常情况下,正规品牌的网线外皮上都有网线的种类标识以及厂家的商标,例如CAT5标识是表示该网线是五类线,CAT6标识就代表网线是六类线;如果网线的外皮什么标识也没有的话,大家就应该提高警惕,想办法创造条件,来按照上面的方法对网线进行测试鉴别。
6、测试网线的绕距
大家知道普通的双绞线是由四组相互缠绕的网线连接在一起的。所谓网线的绕距其实就是网线纽饶一节的长度,通常人们使用绕距来表示每对线对相互缠绕的紧密程度,而且为了能将每对线对相互之间产生的串扰程度降低到最小,常常将线对按逆时针方向紧密地缠绕在一起,而且每对线对采用的绕距是不应该相同的。但许多生产网线的奸商为了减少制作环节、降低工艺成本,常常将四对线对按照同一绕距进行缠绕,甚至许多劣质网线的绕距竟然高达几个厘米,这样线对之间的串扰就大增,严重影响了网线的性能。
7、测试外皮的伸展性
考虑到网线在布线时经常需要弯曲,因此许多正规厂商在制作网线都给外皮留有了一定的伸展性,以保证网线在弯曲时不受损伤。因此大家双手用力拉正规网线时,发现外皮都具有伸展性。如果用力将网线外皮拉断,或者外皮在外力作用下,有裂缝现象的话,就说明该网线的质量有问题。
原文转自:www.ltesting.net
篇6:辽宁网通支持共享中心Windows系统
两台rp3440-4 server共享一个DS2405的盘柜,DS2405中一共有4块73GB的硬盘,c4t0d0 ,c4t1d0,c4t2d0,c4t3d0 ,其中两块硬盘在做pvcreate ,vgextend ,vgcreate等命令时总是出错,收集到如下信息: lnnc_pm2[/]ioscan -kfnCdisk Class I H/W Path Driver S/W Stat
两台rp3440-4 server共享一个DS2405的盘柜,DS2405中一共有4块73GB的硬盘,c4t0d0 ,c4t1d0,c4t2d0,c4t3d0 ,其中两块硬盘在做pvcreate ,vgextend ,vgcreate等命令时总是出错。收集到如下信息:
lnnc_pm2[/]ioscan -kfnCdisk
Class I H/W Path Driver S/W State H/W Type Description
=========================================================================
disk 0 0/0/2/0.0.0.0 sdisk CLAIMED DEVICE TEAC DV-28E-C
/dev/dsk/c0t0d0 /dev/rdsk/c0t0d0
disk 1 0/1/1/0.0.0 sdisk CLAIMED DEVICE HP 36.4GMAU3036NC
/dev/dsk/c2t0d0 /dev/rdsk/c2t0d0
disk 2 0/1/1/0.1.0 sdisk CLAIMED DEVICE HP 36.4GST336754LC
/dev/dsk/c2t1d0 /dev/rdsk/c2t1d0
disk 5 0/4/1/0.8.0.255.0.2.0 sdisk CLAIMED DEVICE HP 73.4GST3
73307FC
/dev/dsk/c4t2d0 /dev/rdsk/c4t2d0
disk 6 0/4/1/0.8.0.255.0.3.0 sdisk CLAIMED DEVICE HP 73.4GST3
73307FC
/dev/dsk/c4t3d0 /dev/rdsk/c4t3d0
disk 7 0/4/1/0.8.0.255.0.4.0 sdisk CLAIMED DEVICE HP 73.4GST3
73307FC
/dev/dsk/c4t4d0 /dev/rdsk/c4t4d0
disk 8 0/4/1/0.8.0.255.0.5.0 sdisk CLAIMED DEVICE HP 73.4GST3
73307FC
/dev/dsk/c4t5d0 /dev/rdsk/c4t5d0
lnnc_pm2[/]diskinfo /dev/rdsk/c4t5d0
SCSI describe of /dev/rdsk/c4t5d0:
vendor: HP 73.4G
product id: ST373307FC
type: direct aclearcase/” target=“_blank” >ccess
size: 140000000 Kbytes
bytes per sector: 520
lnnc_pm2[/]diskinfo /dev/rdsk/c4t4d0
SCSI describe of /dev/rdsk/c4t4d0:
vendor: HP 73.4G
product id: ST373307FC
type: direct access
size: 140000000 Kbytes
bytes per sector: 520
lnnc_pm2[/]diskinfo /dev/rdsk/c4t3d0
SCSI describe of /dev/rdsk/c4t3d0:
vendor: HP 73.4G
product id: ST373307FC
type: direct access
size: 71687369 Kbytes
bytes per sector: 512
lnnc_pm2[/]diskinfo /dev/rdsk/c4t2d0
SCSI describe of /dev/rdsk/c4t2d0:
vendor: HP 73.4G
product id: ST373307FC
type: direct access
size: 71687369 Kbytes
bytes per sector: 512
Need installCVSDM to run JBODfmt formatting disks to 512Byte/Sector
Here's what I followed to format the DS2405 drives:
1. Insert the drive in the DS2405 chassis
2. “discover” the drive
# ioscan -fnC disk
3. Create device files
# insf -e
4. Discover the DS2405 if not already “visible”
# armdiscover
5. To display DS2405 information
# JBODdsp -I
6. Format the drive - command line
# JBODfmt -f /dev/dsk/c8t4d0
-or- if already formatted
# JBODfmt -foverride /dev/dsk/c8t4d0
7. Format the drive using cvui
select drive number
select “Disk”
select “Format”
原文转自:www.ltesting.net
【怎样增加系统支持得伪终端数量?Windows系统】相关文章:
1.畅谈网络终端系统
10.英语多义系统习得实证研究






文档为doc格式