执行tcl错误解析(一)

转载: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) “ nsnamendwireless val(stop)”的位置
总结,只更改了一个语句的位置就解决了这个问题。但是这个更改,感觉本质上没有改变tcl语句的执行顺序,为什么nam文件会产生差别的?

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值