私は、以下の関連するコードを含めています、と私はそれがここまでやっている知っていることを説明することができます:別のファイル(TCL)からこの行を取得していますか?
proc rshm {where {i 0}} {
global ob
set what "???"
set ob(last_rshm_failed) "yes"
if {![info exists ob(shm)]} {
return "0.0"
}
if {[info exists ob(shm_puts_exist_in_progress)]} {
return "0.0"
}
shm_puts "g $where $i"
gets $ob(shm) istr
set what [lindex $istr 0]
set ob(last_rshm_failed) "no"
if {[string equal $what "?"]} {
set ob(last_rshm_failed) "yes"
puts stderr $istr
return "0.0"
}
set what [lindex $istr 3]
return $what
}
プログラムの残りの部分を見てから、私は、最初の2つのif文と結論しています他の場所でエラーをチェックしており、エラーがトリガーされた場合にプロシージャを終了するように設計されています。
プログラムのどこかで、関数が呼び出されることを(興味のある)場所は形式である:rshm ft_xdev
print文を使用して、私はft_xdevがshm_puts「グラムのft_xdev 0」としてプロシージャに渡すことがわかりました。
私を投げている行が行です:
ISTR $ OB(SHM)を取得します$ OB(SHM)への呼び出しが別のファイル(元々はバイナリプログラムが、読みやすいバージョンがCになっています...)、しかしこのファイルを見ると、 "istr"と呼ばれるものへの参照はありません。
誰かが、この行が他のファイルから何を得ているかに私を助けてくれるでしょうか?必要に応じて、プログラムからより多くのコードを提供することができます。
迷惑メールにしないでください!質問にはC関連のものはありません。 – Olaf