2017-04-20 55 views
-1

我感到困惑與來自tcl wiki 1089下面的代碼,TCL不透明處理C的lib

#define TEMPBUFSIZE 256 /* usually enough space! */ 
char buf[[TEMPBUFSIZE]]; 

我很好奇,我試圖編譯GCC &器armcc上述語法,無論失敗。我期待了解tcl如何處理文件指針機制,以解決運行在同一文件夾[作業特有的日誌文件]中的多個作業的數據記錄混亂問題。

我有多個並行運行的tcl腳本作爲每個使用日誌文件的LSF作業。 例如, Job1 - > log1.txt Job2 - > log2.txt (這兩種情況下的文件寫入在整個作業執行中都是「間歇性的」) 我希望成爲log1.txt的一部分文本寫入log2.txt,反之亦然。我試過用「fconfigure $ fp -buffering none」,行爲仍然存在。一個重要的注意事項是,所有LSF作業都是從同一文件夾提交的,如果我從單個文件夾提交作業,則日誌文件不會從其他作業寫入文本。我希望從同一個文件夾執行作業,以減少在不同文件夾中重複使用資源所消耗的空間。

問題1: 任何人都可以告訴我如何將tcl「句柄」解釋爲指向分配給日誌文件的內存的指針嗎?我之所以提到Intermitent是因爲以下原因:「當解釋器對某個特定文件執行一些文件I/O操作時,Tcl會將該字符串內部映射到一個打開的文件指針 - Wiki 1089」 Question2: 有沒有可能那兩個不同的「開放」可能最終擁有相同的「文件」?

+0

此語法無效,請嘗試使用單個括號 –

+0

@n.m。感謝您的迅速回復,我採取了形式http://wiki.tcl.tk/1089。我試圖弄清楚爲什麼簡單的文件從作爲lsf作業運行的tcl腳本寫入,最終導致來自另一個lsf作業(tcl腳本)的數據並行運行。僅供參考,我有一個繼續保持一定數量的作業運行。也許新的工作結束了創建相同的「文件」[0-9] *字符串?我如何避免這種情況? – delete

+0

@hariprasath如果你有另一個問題,然後再問另一個問題。無論如何,從代碼中可以清楚地看出,在與原始代碼相關的原始代碼中發佈了一些錯誤,這些代碼被髮布到論壇/ wiki中,因此括號翻了一番。 –

回答

0

某處沿線的代碼已被破壞;它看起來像是在2011年將語法從一種高亮方案轉換爲另一種時發生的。糟糕!我原來使用的內容:

char buf[TEMPBUFSIZE]; 

這就是你應該使用的。 (我已更新wiki頁面以解決此問題。)

+0

[正如我懷疑](http://stackoverflow.com/questions/43517815/tcl-opaque-handle -c-LIB?noredirect = 1#comment74089886_43517815) –