我想在TCL腳本和C代碼之間建立連接。TCL和C中的讀/寫FIFO,垃圾輸出
這裏是TCL腳本
set fs[open "./fifo_server" "w"]
puts $fs "level_3"
flush $fs
這裏是C代碼
if ((fs = fopen ("./fifo_server", "r"))== NULL)
perror ("error occured while opening FIFO_SERVER");
else {
fs1 = fileno(fs);
read(fs1, in_data, sizeof(in_data));
}
printf ("in_data = %s\n", in_data);
輸出看起來像:
in_data = level_3
(some garbage stuff 5 spaces which contains Question marks, Squares,
Characters etc.)
我不明白,什麼可能是垃圾線的原因?
感謝您的精確和早期的幫助。
感謝和問候, M.
對於一個使用'組FS [開「./fifo_server」,‘W’]'來代替。 Tcl中的空間很重要。 – Jerry
爲什麼你使用'fileno'和'read'而不是'fread'?或者,相反,'fopen'而不是'open'?儘量避免爲一個文件描述符/句柄使用兩個API ... –
@Jerry我認爲這必須是一個轉錄錯誤,否則代碼永遠不會像報告的那樣工作。 –