转载:http://blog.163.com/cumtwjr19890217@126/blog/static/109813925201261174737591/
当在ns2平台执行:
ns xxx.tcl
出现错误如下:
root@Master:/usr/ns2# Missing required flag -x in: W -t 5.0
Missing required flag -y in: W -t 5.0
Parsing error in event.
错误分析如下:
错误顺序:
proc finish {} {
global ns tracefile namfile
$ns flush-trace
close $tracefile
close $namfile
exec nam nsg2.nam &
exit 0
}
for {set i 0} {$i < $val(nn) } { incr i } {
$ns at $val(stop) "\$n$i reset"
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run
正确顺序:
proc finish {} {
global ns tracefile namfile val
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns flush-trace
close $tracefile
close $namfile
exec nam nsg2.nam &
exit 0
}
for {set i 0} {$i < $val(nn) } { incr i } {
$ns at $val(stop) "\$n$i reset"
}
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run
修改:global ns tracefile namfile val
nsat
val(stop) “
nsnam−end−wireless
val(stop)”的位置
总结,只更改了一个语句的位置就解决了这个问题。但是这个更改,感觉本质上没有改变tcl语句的执行顺序,为什么nam文件会产生差别的?