Tcl8.6/Tk8.6 Documentation > Tk C API, version 8.6.8 > Tk_Init
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
- Tk_Init, Tk_SafeInit — add Tk to an interpreter and make a new Tk application.
- #include <tk.h>
- Tcl_Interp *interp (in)
- Interpreter in which to load Tk. Tk should not already be loaded in this interpreter.
If there is a variable argv in interp, Tk_Init treats the contents of this variable as a list of options for the new Tk application. The options may have any of the forms documented for the wish application (in fact, wish uses Tk_Init to process its command-line arguments).
Tk_SafeInit is identical to Tk_Init except that it removes all Tk commands that are considered unsafe. Those commands and the reasons for their exclusion are:
- Continuous ringing of the bell is a nuisance.
- A malicious script could replace the contents of the clipboard with the string “rm -r *” and lead to surprises when the contents of the clipboard are pasted.
- Grab can be used to block the user from using any other applications.
- Menus can be used to cover the entire screen and to steal input from the user.
- See clipboard.
- Send can be used to cause unsafe interpreters to execute commands.
- The tk command recreates the send command, which is unsafe.
- Tkwait can block the containing process forever
- Toplevels can be used to cover the entire screen and to steal input from the user.
- If toplevels are ever allowed, wm can be used to remove decorations, move windows around, etc.