데이터 마샬링 지원
******************

이러한 루틴은 C 코드가 "marshal" 모듈과 같은 데이터 형식을 사용하여 직
렬화된 객체로 작업 할 수 있도록 합니다. 직렬화 형식으로 데이터를 쓰는
함수와 데이터를 다시 읽는 데 사용할 수 있는 추가 함수가 있습니다. 마샬
링 된 데이터를 저장하는 데 사용되는 파일은 바이너리 모드로 열어야 합니
다.

숫자 값은 최하위 바이트가 먼저 저장됩니다.

The module supports two versions of the data format: version 0 is the
historical version, version 1 shares interned strings in the file, and
upon unmarshalling.  Version 2 uses a binary format for floating-point
numbers. "Py_MARSHAL_VERSION" indicates the current file format
(currently 2).

void PyMarshal_WriteLongToFile(long value, FILE *file, int version)

   Marshal a long integer, *value*, to *file*.  This will only write
   the least-significant 32 bits of *value*; regardless of the size of
   the native long type.  *version* indicates the file format.

   This function can fail, in which case it sets the error indicator.
   Use "PyErr_Occurred()" to check for that.

void PyMarshal_WriteObjectToFile(PyObject *value, FILE *file, int version)

   파이썬 객체 *value*를 *file*로 마샬합니다. *version*은 파일 형식을
   나타냅니다.

   This function can fail, in which case it sets the error indicator.
   Use "PyErr_Occurred()" to check for that.

PyObject *PyMarshal_WriteObjectToString(PyObject *value, int version)
    *Return value: New reference.*

   마샬된 *value* 표현을 포함한 바이트열 객체를 반환합니다. *version*
   은 파일 형식을 나타냅니다.

다음 함수를 사용하면 마샬된 값을 다시 읽을 수 있습니다.

long PyMarshal_ReadLongFromFile(FILE *file)

   Return a C long from the data stream in a FILE* opened for reading.
   Only a 32-bit value can be read in using this function, regardless
   of the native size of long.

   에러 시, 적절한 예외("EOFError")를 설정하고 "-1"을 반환합니다.

int PyMarshal_ReadShortFromFile(FILE *file)

   Return a C short from the data stream in a FILE* opened for
   reading.  Only a 16-bit value can be read in using this function,
   regardless of the native size of short.

   에러 시, 적절한 예외("EOFError")를 설정하고 "-1"을 반환합니다.

PyObject *PyMarshal_ReadObjectFromFile(FILE *file)
    *Return value: New reference.*

   Return a Python object from the data stream in a FILE* opened for
   reading.

   에러 시, 적절한 예외("EOFError", "ValueError" 또는 "TypeError")를
   설정하고 "NULL"을 반환합니다.

PyObject *PyMarshal_ReadLastObjectFromFile(FILE *file)
    *Return value: New reference.*

   Return a Python object from the data stream in a FILE* opened for
   reading.  Unlike "PyMarshal_ReadObjectFromFile()", this function
   assumes that no further objects will be read from the file,
   allowing it to aggressively load file data into memory so that the
   de-serialization can operate from data in memory rather than
   reading a byte at a time from the file.  Only use these variant if
   you are certain that you won't be reading anything else from the
   file.

   에러 시, 적절한 예외("EOFError", "ValueError" 또는 "TypeError")를
   설정하고 "NULL"을 반환합니다.

PyObject *PyMarshal_ReadObjectFromString(const char *data, Py_ssize_t len)
    *Return value: New reference.*

   *data*가 가리키는 *len* 바이트를 포함하는 바이트 버퍼의 데이터 스트
   림에서 파이썬 객체를 반환합니다.

   에러 시, 적절한 예외("EOFError", "ValueError" 또는 "TypeError")를
   설정하고 "NULL"을 반환합니다.
