Curses C API¶
curses 는 확장 모듈을 위한 작은 C 인터페이스를 제공합니다. 사용자는 py_curses.h 헤더 파일(기본적으로 Python.h 에 포함되지 않음)을 포함해야 하며, PyCurses_API 를 채우기 위해 보통 모듈 초기화 함수의 일부로 import_curses() 를 호출해야 합니다.
경고
C API와 순수 파이썬인 curses 모듈 모두 서브인터프리터(subinterpreters)와 호환되지 않습니다.
-
import_curses()¶
curses C API를 임포트하십시오. 매크로는 호출할 때 세미콜론이 필요하지 않습니다.
성공하면
PyCurses_API포인터를 채웁니다.실패 시
PyCurses_API를 NULL로 설정하고 예외를 발생시킵니다. 호출자는PyErr_Occurred()를 통해 오류 발생 여부를 확인해야 합니다.import_curses(); // 세미콜론은 선택 사항이지만 권장됩니다 if (PyErr_Occurred()) { /* 정리 */ }
-
void **PyCurses_API¶
curses C API를 포함하는 동적으로 할당된 객체입니다. 이 변수는
import_curses가 성공한 경우에만 사용할 수 있습니다.PyCurses_API[0]는PyCursesWindow_Type에 해당합니다.PyCurses_API[1],PyCurses_API[2], 및PyCurses_API[3]``은 ``int (*)(void)타입의 예측(predicate) 함수 포인터입니다.호출 시, 이 예측들은 각각
curses.setupterm(),curses.initscr(), 및curses.start_color()가 호출되었는지 여부를 반환합니다.편의용 매크로인
PyCursesSetupTermCalled,PyCursesInitialised, 및PyCursesInitialisedColor를 참조하십시오.참고
이 구조체의 항목 수는 변경될 수 있습니다. 새로운 필드가 사용 가능한지 확인하려면
PyCurses_API_pointers를 사용하는 것을 고려하십시오.
-
PyCurses_API_pointers¶
PyCurses_API에서 접근 가능한 필드 수(4)입니다. 새로운 필드가 추가될 때마다 이 숫자가 증가합니다.
-
PyTypeObject PyCursesWindow_Type¶
curses.window클래스에 해당하는 힙 타입 입니다.
-
int PyCursesWindow_Check(PyObject *op)¶
op 이(가)
curses.window인스턴스이면 True를, 그렇지 않으면 False를 반환합니다.
다음 매크로들은 C 문장으로 확장되는 편의용 매크로입니다. 특히, 이들은 macro; 또는 macro 로만 사용될 수 있으며, macro() 나 macro(); 로는 사용할 수 없습니다.
-
PyCursesSetupTermCalled¶
curses.setupterm()이 호출되었는지 확인하는 매크로입니다.매크로 확장은 대략 다음과 같습니다:
{ typedef int (*predicate_t)(void); predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1]; if (!was_setupterm_called()) { return NULL; } }
-
PyCursesInitialised¶
curses.initscr()이 호출되었는지 확인하는 매크로입니다.매크로 확장은 대략 다음과 같습니다:
{ typedef int (*predicate_t)(void); predicate_t was_initscr_called = (predicate_t)PyCurses_API[2]; if (!was_initscr_called()) { return NULL; } }
-
PyCursesInitialisedColor¶
curses.start_color()이 호출되었는지 확인하는 매크로입니다.매크로 확장은 대략 다음과 같습니다:
{ typedef int (*predicate_t)(void); predicate_t was_start_color_called = (predicate_t)PyCurses_API[3]; if (!was_start_color_called()) { return NULL; } }
내부 데이터¶
다음 객체들은 C API에 노출되어 있지만 내부 전용으로 간주해야 합니다.
-
PyCurses_CAPSULE_NAME¶
PyCapsule_Import()에 전달할 curses 캡슐의 이름입니다.내부 사용 전용입니다. 대신
import_curses를 사용하십시오.