Использование функции Tcl_SetChannelOption при создании канала TCL C - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу реализовать свой Tcl_Channel, который будет взаимодействовать между Tcl и C. Я увидел, что после создания канала с использованием Tcl_CreateChannel (...) есть использование

Tcl_SetChannelOption(Tcl_Interp *interp, Tcl_Channel chan, cons char *optionName, const char *newValue);  

функции TCL-C API,кроме того, я видел, что почти всегда передается эта функция:

  • Аргумент 1: NULL

  • Аргумент 2: ClientData

  • Аргумент 3: "-translation" или "-buffering"

  • Аргумент 4: "lf" (в случае -translation) или "нет "(в случае -buffering)

Я попытался найти и понять, почему эти параметры передаются этой функции и что более важно, каково значение этих флагов, значений иничего не найти.
Мне нужно объяснение, почему использовать эту функцию и как ее использовать?

1 Ответ

0 голосов
/ 22 ноября 2018

Короче говоря:

  • -translation о том, как обращаться с символами конца строки (поскольку они могут различаться в Windows, Linux и MacOS).
  • -buffering говорит о том, как часто данные вводятся в канал (поскольку это может быть дорогостоящим, если вы делаете это слишком часто, или может привести к обратным результатам при любой задержке).

Все эти параметры будут действовать для дальнейших операций чтения / записи, выполняемых на канале.Таким образом, вместо поиска в Google для Tcl_SetChannelOption, вы должны проверить man для самих опций (так как эти два не единственные применимые опции).Например: https://www.tcl.tk/man/tcl8.4/TclCmd/fconfigure.htm

...