文件描述符我在我創建了一個Tcl解釋的C程序。然後我在C程序中打開一個文件,並將其傳遞給tcl解釋器,以便tcl解釋器可以對其執行I/O。傳遞用C打開到TCL解釋器使用
而且我知道我可以只打開了TCL解釋文件,但我得到一個打開的文件描述符一些別的地方,所以這不是一個選項,很遺憾。
任何想法或技巧,還是我錯過TCL C API的東西?
文件描述符我在我創建了一個Tcl解釋的C程序。然後我在C程序中打開一個文件,並將其傳遞給tcl解釋器,以便tcl解釋器可以對其執行I/O。傳遞用C打開到TCL解釋器使用
而且我知道我可以只打開了TCL解釋文件,但我得到一個打開的文件描述符一些別的地方,所以這不是一個選項,很遺憾。
任何想法或技巧,還是我錯過TCL C API的東西?
man Tcl_MakeFileChannel
閱讀有關於Tcl_MakeFileChannel
和Tcl_RegisterChannel
不會有已經打開您所創建的TCL解釋過程文件之前,如果它要具有文件描述符沒有意義?
如果打開後,和你有文件描述符9 C程序說,然後你通過這9到TCL翻譯過程中,有9名不是將意味着什麼。
如果他將Tcl作爲一個單獨的進程運行,那麼這個評論就會適用,但我認爲他有一個嵌入C程序中的Tcl解釋器。在同一個過程中。 – 2009-08-27 07:50:46
只見陳命令的文檔在TCL的水平,但我沒有看到任何出現適合這樣做。我簡化了這個問題。實際上,我正在使用Perl Tcl模塊,並需要構建一個tcl命令來執行相同的操作。有沒有通過tcl「chan」操作做到這一點的等效方法?由於文件是用Perl打開的,但我可以訪問文件描述符,並且需要將它連接到tcl子系統。但如果沒有,我會咬下子彈,用C這樣做。謝謝你的提示! – xcramps 2009-08-25 20:04:30
你能寫一個TCL C擴展來創建一個新的TCL命令已經做了你需要使用Tcl_MakeFileChannel和Tcl_RegisterChannel API函數是什麼? – Jackson 2009-08-27 09:14:05
我認爲這些提示是您需要去的方式。 Tcl_MakeFileChannel接受一個現有的文件句柄並使其在Tcl中可用。徹底閱讀文檔。我沒有把Perl和Tcl結合起來,所以我不能給出任何具體的提示。 – 2009-08-29 01:10:18