WSError (C 函数)

int WSError(WSLINK link)

返回一个值,确定发生在 link 中的最后一个错误. 如果自上次调用 WSClearError() 之后,没有发生错误,WSError() 返回 WSEOK.

更多信息

  • 通过调用 WSErrorMessage() ,可以获取错误的文本描述.
  • WSError() 可以返回以下值:
  • WSEOK一切正常
    WSEDEAD链接死了
    WSEGBAD不一致的数据读取
    WSEGSEQ失序调用 WSGet() 函数
    WSEPBTKWSPutNext() 传递一个坏的令牌
    WSEPSEQ失序调用 WSPut() 函数
    WSEPBIGWSPutData() 给予太多数据
    WSEOVFL机器数溢出
    WSEMEM内存不足
    WSEACCEPT接受 socket 连接失败
    WSECONNECT延迟的连接仍然未连接
    WSEPUTENDPACKET意外或错过 WSEndPacket() 的调用
    WSENEXTPACKET当当前数据包具有未读取数据时调用 WSNextPacket()
    WSEUNKNOWNPACKETWSNextPacket() 读取一个未知数据包标头
    WSEGETENDPACKET意外结束数据包
    WSEABORT影响链接前中止 put 或 get
    WSECLOSED链接的另一端关闭了链接(你可能仍然收到未分发的数据)
    WSEINITWSTP 环境没有被初始化
    WSEARGV没有足够的自变量打开链接
    WSEPROTOCOL没有可用协议
    WSEMODE没有可用模式
    WSELAUNCH启动不支持
    WSELAUNCHAGAIN不能从同一文件中再次启动程序
    WSELAUNCHSPACE没有足够的空间启动程序
    WSENOPARENT没有可用的父连接
    WSENAMETAKEN链接名称已被使用
    WSENOLISTEN找到的链接名称没有被监听
    WSEBADNAME链接名称被丢失或形式不合适
    WSEBADHOST位置不可访问或形式不合适
    WSELAUNCHFAILED程序未能启动,因为缺少资源或程序库
    WSELAUNCHNAME启动失败,因为没有找到程序
    WSEPSCONVERT不能从给定的字符编码转换成链接编码
    WSEGSCONVERT不能从链接编码转换成要求的编码
    WSEPDATABAD给定编码的字符数据不正确
  • WSTP 的标头文件 wstp.h 已对 WSError() 作出声明.

范例

基本范例  (1)

#include "wstp.h"

/* send the integer 10 to a link */

void f(WSLINK lp)
{
    if(! WSPutInteger(lp, 10))
    {
        /* check the possible errors */
        switch(WSError(lp))
        {
            case WSEDEAD:
                /* the link died unexpectedly */
                break;
            case WSECLOSED:
                /* the other side closed the link */
                break;
            case WSEOK:
                /* no error occurred */
                break;
            default:
                /* ... */
        }
    }
}