8.3.3. リターンコード

8.3.3.1. 概要

リターンコードは処理が成功したかどうかを示すために使われます。もし、処理が成功していなければリターンコードはエラーの種類を示します。

リターンコードはCのAPIでもクエリーAPIでも使われます。CのAPIでは grn_ctx_t::rc でリターンコードを確認できます。クエリーAPIではヘッダー要素を見るとリターンコードを確認できます。クエリーAPIでのヘッダー要素については 出力形式 を参照してください。

8.3.3.2. 一覧

以下はリターンコードの一覧です。 GRN_SUCCESS (= 0) は処理が成功したことを示しています。負の値のリターンコードはエラーの種類を表しています。 GRN_END_OF_DATA は特別なリターンコードです。このリターンコードはCのAPIでだけ使われていて、クエリーAPIにはでてきません。

  • 0: GRN_SUCCESS
  • 1: GRN_END_OF_DATA
  • -1: GRN_UNKNOWN_ERROR
  • -2: GRN_OPERATION_NOT_PERMITTED
  • -3: GRN_NO_SUCH_FILE_OR_DIRECTORY
  • -4: GRN_NO_SUCH_PROCESS
  • -5: GRN_INTERRUPTED_FUNCTION_CALL
  • -6: GRN_INPUT_OUTPUT_ERROR
  • -7: GRN_NO_SUCH_DEVICE_OR_ADDRESS
  • -8: GRN_ARG_LIST_TOO_LONG
  • -9: GRN_EXEC_FORMAT_ERROR
  • -10: GRN_BAD_FILE_DESCRIPTOR
  • -11: GRN_NO_CHILD_PROCESSES
  • -12: GRN_RESOURCE_TEMPORARILY_UNAVAILABLE
  • -13: GRN_NOT_ENOUGH_SPACE
  • -14: GRN_PERMISSION_DENIED
  • -15: GRN_BAD_ADDRESS
  • -16: GRN_RESOURCE_BUSY
  • -17: GRN_FILE_EXISTS
  • -18: GRN_IMPROPER_LINK
  • -19: GRN_NO_SUCH_DEVICE
  • -20: GRN_NOT_A_DIRECTORY
  • -21: GRN_IS_A_DIRECTORY
  • -22: GRN_INVALID_ARGUMENT
  • -23: GRN_TOO_MANY_OPEN_FILES_IN_SYSTEM
  • -24: GRN_TOO_MANY_OPEN_FILES
  • -25: GRN_INAPPROPRIATE_I_O_CONTROL_OPERATION
  • -26: GRN_FILE_TOO_LARGE
  • -27: GRN_NO_SPACE_LEFT_ON_DEVICE
  • -28: GRN_INVALID_SEEK
  • -29: GRN_READ_ONLY_FILE_SYSTEM
  • -30: GRN_TOO_MANY_LINKS
  • -31: GRN_BROKEN_PIPE
  • -32: GRN_DOMAIN_ERROR
  • -33: GRN_RESULT_TOO_LARGE
  • -34: GRN_RESOURCE_DEADLOCK_AVOIDED
  • -35: GRN_NO_MEMORY_AVAILABLE
  • -36: GRN_FILENAME_TOO_LONG
  • -37: GRN_NO_LOCKS_AVAILABLE
  • -38: GRN_FUNCTION_NOT_IMPLEMENTED
  • -39: GRN_DIRECTORY_NOT_EMPTY
  • -40: GRN_ILLEGAL_BYTE_SEQUENCE
  • -41: GRN_SOCKET_NOT_INITIALIZED
  • -42: GRN_OPERATION_WOULD_BLOCK
  • -43: GRN_ADDRESS_IS_NOT_AVAILABLE
  • -44: GRN_NETWORK_IS_DOWN
  • -45: GRN_NO_BUFFER
  • -46: GRN_SOCKET_IS_ALREADY_CONNECTED
  • -47: GRN_SOCKET_IS_NOT_CONNECTED
  • -48: GRN_SOCKET_IS_ALREADY_SHUTDOWNED
  • -49: GRN_OPERATION_TIMEOUT
  • -50: GRN_CONNECTION_REFUSED
  • -51: GRN_RANGE_ERROR
  • -52: GRN_TOKENIZER_ERROR
  • -53: GRN_FILE_CORRUPT
  • -54: GRN_INVALID_FORMAT
  • -55: GRN_OBJECT_CORRUPT
  • -56: GRN_TOO_MANY_SYMBOLIC_LINKS
  • -57: GRN_NOT_SOCKET
  • -58: GRN_OPERATION_NOT_SUPPORTED
  • -59: GRN_ADDRESS_IS_IN_USE
  • -60: GRN_ZLIB_ERROR
  • -61: GRN_LZO_ERROR
  • -62: GRN_STACK_OVER_FLOW
  • -63: GRN_SYNTAX_ERROR
  • -64: GRN_RETRY_MAX
  • -65: GRN_INCOMPATIBLE_FILE_FORMAT
  • -66: GRN_UPDATE_NOT_ALLOWED
  • -67: GRN_TOO_SMALL_OFFSET
  • -68: GRN_TOO_LARGE_OFFSET
  • -69: GRN_TOO_SMALL_LIMIT
  • -70: GRN_CAS_ERROR
  • -71: GRN_UNSUPPORTED_COMMAND_VERSION

8.3.3.3. 参考

  • 出力形式 はクエリーAPIでのレスポンスの中でどこにリターンコードがあるかを説明しています。

  • GQTP: GQTPプロトコルもステータスとしてリターンコードを使っていますが、ステータスは2バイトの符号なし整数です。そのため、GQTPプロトコルでは、負の値のリターンコードは正の値のステータスになります。GQTPプロトコルのステータスの値を2バイトの符号付き整数として扱うとステータスをリターンコードに変換できます。