## Tcl9.0.3/Tk9.0.3 Documentation > Tcl C API > WrongNumArgs

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tcl_WrongNumArgs — 引数の誤った数の為の標準的不都合伝言文の生成 generate standard error message for wrong number of arguments
  SYNOPSIS
    #include <tcl.h>
    Tcl_WrongNumArgs(interp, objc, objv, message)
  引数 ARGUMENTS
    Tcl_Interp interp (入力in)
    Tcl_Size objc (入力in)
    Tcl_Obj *const objv[] (入力in)
    const char *message (入力in)
  説明 DESCRIPTION
  参照回数管理 REFERENCE COUNT MANAGEMENT
  SEE ALSO
  KEYWORDS

### NAME

Tcl_WrongNumArgs — 引数の誤った数の為の標準的不都合伝言文の生成 generate standard error message for wrong number of arguments

### SYNOPSIS

#include <tcl.h>
Tcl_WrongNumArgs(interp, objc, objv, message)

### 引数 ARGUMENTS

Tcl_Interp interp (入力in)
  其処に不都合を報告することになる解釈実行機能: 不都合伝言文はその結果の値に保存される｡　 Interpreter in which error will be reported: error message gets stored in its result value.

Tcl_Size objc (入力in)
  その中に 不都合伝言文を含んでいる objv の引数の先頭の数｡　 Number of leading arguments from objv to include in error message.

Tcl_Obj *const objv[] (入力in)
  命令への引数であって誤った引数の番号を有している｡　 Arguments to command that had the wrong number of arguments.

const char *message (入力in)
  objv の先頭の引数の後ろに印刷すべき追加の不都合情報｡これは典型的には命令の受入れ可能な構文を与える｡この引数は NULL でも好い｡　 Additional error information to print after leading arguments from objv. This typically gives the acceptable syntax of the command. This argument may be NULL.

### 説明 DESCRIPTION

このTcl_WrongNumArgs 命令は､誤った数の引数を受取ったことを発見した時に手続函数命令によって起動される便利な手続函数である｡Tcl_WrongNumArgs は､標準不都合伝言文を生成し､それを interp の結果の対象内に保存する｡その伝言文は､ objv の初期要素に message を加えた objc 含む｡譬えば､もし objv が foo と bar の二つの値から構成され､且つ､ objc が 1 且つ message が “fileName count” の場合､ interp の結果値は次の文字列に設定される: Tcl_WrongNumArgs is a utility procedure that is invoked by command procedures when they discover that they have received the wrong number of arguments. Tcl_WrongNumArgs generates a standard error message and stores it in the result value of interp. The message includes the objc initial elements of objv plus message. For example, if objv consists of the values foo and bar, objc is 1, and message is “fileName count” then interp's result value will be set to the following string:

    wrong # args: should be "foo fileName count"

もし objc が 2 の場合､結果は次の文字列に設定される: If objc is 2, the result will be set to the following string:

    wrong # args: should be "foo bar fileName count"

objc は通常 1 であるが､しかし､最初の引数として副命令を使う string 命令や､Tk 部品命令の如く､ 2 或は更に大きいかもしれない｡ Objc is usually 1, but may be 2 or more for commands like string and the Tk widget commands, which use the first argument as a subcommand.

objv の配列の幾つかは､副命令の為に短縮されることもある｡ Tcl_GetIndexFromObj 命令は､短縮文字列を indexObject に変換する｡もし副命令の解析中に不都合が生じると､短縮形よりも完全な副命令名を使う方が好ましい｡もし､ Tcl_WrongNumArgs 命令が objv 配列中に何かの indexObject を見付けると､最初に渡された省略名ではなく副命令の完全な名前を使うことになる｡上の例を使うと､ bar は barfly の短縮形であると仮定でき､対象は索引対象であると仮定できる､理由はそれが Tcl_GetIndexFromObj に渡されているから｡この場合不都合伝言文はこうなる筈である: Some of the values in the objv array may be abbreviations for a subcommand. The command Tcl_GetIndexFromObj will convert the abbreviated string value into an indexObject. If an error occurs in the parsing of the subcommand we would like to use the full subcommand name rather than the abbreviation. If the Tcl_WrongNumArgs command finds any indexObjects in the objv array, it will use the full subcommand name in the error message instead of the abbreviated name that was originally passed in. Using the above example, let us assume that bar is actually an abbreviation for barfly and the value is now an indexObject because it was passed to Tcl_GetIndexFromObj. In this case the error message would be:

    wrong # args: should be "foo barfly fileName count"

### 参照回数管理 REFERENCE COUNT MANAGEMENT

Tcl_WrongNumArgsへのobjv引数は､ Tcl_WrongNumArgsを呼出している､命令や手段の実装函数に渡された引数と､ 正確であるべき｡ その様に､その中に参照された全ての値は､零より大きい参照回数を有すべき; これは､通常問題ではない｡ The objv argument to Tcl_WrongNumArgs should be the exact arguments passed to the command or method implementation function that is calling Tcl_WrongNumArgs. As such, all values referenced in it should have reference counts greater than zero; this is usually a non-issue.

### SEE ALSO

Tcl_GetIndexFromObj

### KEYWORDS

command, error message, wrong number of arguments
Copyright © 1994-1997 Sun Microsystems, Inc.